c# – 检查EXE上的数字签名

前端之家收集整理的这篇文章主要介绍了c# – 检查EXE上的数字签名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的.NET exe是使用signtool签名的.
使用这段代码,我可以验证证书本身的有效性:
var cert = X509Certificate.CreateFromSignedFile("application.exe");
var cert2 = new X509Certificate2(cert.Handle);
bool valid = cert2.Verify();

但是,这只会检查证书本身,而不是EXE的签名.因此,如果EXE被篡改,则此方法不会检测到它.

如何检查签名?

解决方法

你需要从wintrust.dll调用(P / Invoke)WinVerifyTrust()函数.有(据我所知)在托管.NET中没有其他选择.

您可以找到此方法的文档here.

有人已经就这个问题问了这个问题.它不被接受,但它应该是正确的(我只滚动). Take a look.

你也可以看看this guide,但他们真的做同样的事情.

猜你在找的C#相关文章