我正在尝试写一个C#程序来验证exe的数字签名。exe的签名是用authenticode证书签名的,我想要检测篡改。
我已经能够创建一个SignedCms实例,如下所述:Get timestamp from Authenticode Signed files in .NET
我假设SignedCms.CheckSignature可以完成这个任务,但是这个方法从来不会抛出异常...即使我修改了可执行文件的某些部分...
发布于 2011-10-02 12:20:32
我假设你已经搜索过.NET框架文档,但没有找到你需要的东西。this StackOverflow question的答案中有一个链接,描述了如何使用原生Windows CryptQueryObject函数来验证签名。所以剩下的就是检查PInvoke.NET to see how to bring that function into .NET了。
发布于 2011-10-02 05:11:31
你能不能直接用shell命令signtool.exe /verify,并检查结果?
我最近写了一个简单的应用程序,它使用相同的方法签署可执行文件,它工作得很好。
Signtool on MSDN
https://stackoverflow.com/questions/7622732
复制相似问题