以编程方式检查数字签名

时间:2009-07-15 09:30:06

标签: c++ winapi windows-7 digital-signature

我有正在进行的项目的exe用数字签名签名,这意味着当它要求管理员权限时,它会显示公司名称。这非常有效但是如果你修改exe它仍然可以工作并在那里显示未知。

有没有办法在运行exe时检查数字签名是否有效,以避免修改版本运行?

Visual Studio 2008 Windows 7

2 个答案:

答案 0 :(得分:8)

Here是一个示例程序(它使用WinVerifyTrust函数)验证签名,但我不确定它是否可以在Windows 7下运行。您应该尝试一下。

答案 1 :(得分:0)

考虑到您已经有UAC需求,在“计算机配置\ Windows设置\本地策略\安全选项”中设置GPO选项“仅提升已签名和验证的可执行文件”是不够的?还有一个可能有用的"Use Certificate Rules on Windows Executables for Software Restriction Policies"设置。

这些设置优于尝试从您自己的应用程序进行检查,因为重点是您修改二进制文件时无法再信任自己。