我有正在进行的项目的exe用数字签名签名,这意味着当它要求管理员权限时,它会显示公司名称。这非常有效但是如果你修改exe它仍然可以工作并在那里显示未知。
有没有办法在运行exe时检查数字签名是否有效,以避免修改版本运行?
Visual Studio 2008 Windows 7
答案 0 :(得分:8)
Here是一个示例程序(它使用WinVerifyTrust
函数)验证签名,但我不确定它是否可以在Windows 7下运行。您应该尝试一下。
答案 1 :(得分:0)
考虑到您已经有UAC需求,在“计算机配置\ Windows设置\本地策略\安全选项”中设置GPO选项“仅提升已签名和验证的可执行文件”是不够的?还有一个可能有用的"Use Certificate Rules on Windows Executables for Software Restriction Policies"设置。
这些设置优于尝试从您自己的应用程序进行检查,因为重点是您修改二进制文件时无法再信任自己。