我希望解析并显示从 Window PE 二进制文件的安全目录中提取的 Authenticode PKCS#7 签名的内容。
我可以使用 OpenSSL 在命令行中使用“ openssl pkcs7 -text -in extracted_signature.pks -inform DER -print_certs
”来执行此操作,但是我需要通过 C/C++ 和 Windows API 来执行此操作。我不能使用 OpenSSL 库本身。
使用CryptDecodeObjectEx
API,我可以开始解码提取的签名:
CRYPT_CONTENT_INFO * content_info;
DWORD len;
CryptDecodeObjectEx(
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
PKCS_CONTENT_INFO,
pointer_to_extracted_signature,
length_of_extracted_signature,
CRYPT_DECODE_ALLOC_FLAG,
NULL,
&content_info,
&len
);
上述调用成功完成,content_info->pszObjId
OID 为“1.2.840.113549.1.7.2”(szOID_RSA_signedData),但是我找不到继续解码所需的结构。此处列出了 CryptDecodeObjectEx 的可用 OID 。
有人可以建议如何通过 Windows API 解码 Authenticode PKCS#7 签名吗?