加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:26:03 所属栏目:百科 来源:网络整理
导读:我的.NET exe是使用signtool签名的. 使用这段代码,我可以验证证书本身的有效性: var cert = X509Certificate.CreateFromSignedFile("application.exe");var cert2 = new X509Certificate2(cert.Handle);bool valid = cert2.Verify(); 但是,这只会检查证书本
我的.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,但他们真的做同样的事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读