我有以下要求,使用证书对二进制文件进行签名,但不使用signtool.exe;这个想法是通过代码来实现的。
你知道这是否可能吗?
您需要使用从mssign32.dll导出的SignerSign或SignerSignEx函数。
要使用这些,您需要定义SIGNER_SUBJECT_INFO
、SIGNER_FILE_INFO
、SIGNER_CERT
、SIGNER_SIGNATURE_INFO
等结构的托管版本,然后正确地为本机方法指定p/Invoke签名。
在这篇博客文章进行到一半时,有一个调用SignerSignEx
的C++示例;Mark已经在这个StackOverflow答案中将它移植到了C#中。