gpt4 book ai didi

c# - 在 Windows 应用程序上验证代码签名证书

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:14 29 4
gpt4 key购买 nike

我正在尝试以编程方式验证代码签名证书,如 this question from 2014 中所述.遵循建议后,我仍然无法找到一致的工作解决方案来确定我的 .exe 何时被篡改(即哈希不再匹配)

wintrust.dll 中的 WinVerifyTrust 方法是最准确的,但是在我的可执行文件被混淆/VM 后,我似乎得到了误报。在这种情况下,即使 .exe 已有效签名且未被篡改,我也会得到 (int)2148204800 的结果。我也不喜欢使用 Windows API 调用,因为我希望代码尽可能具有可移植性。

X509Certificate.CreateFromSignedFile().Verify() 等其他方法和 Powershell 方法当然不会验证 exe 的哈希值,因此返回 true。

在过去 4 年中是否出现了任何新方法来验证 .exe 的哈希值,最好是在纯 .NET 中?我对一个只验证散列而不是整个证书(如果可能的话)的解决方案感到满意。

最佳答案

如果您从 Mono.Security 中提取一个 Nuget 包,他们有一个很好的 AuthenticodeDeformatter 类可以验证代码签名证书:

var authenticode = new AuthenticodeDeformatter(Filename);
authenticode.IsTrusted(); //Should return False if tampered with.

关于c# - 在 Windows 应用程序上验证代码签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52067029/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com