如何保护可执行文件不受版本信息的更改?

时间:2018-08-25 04:57:01

标签: c# .net

我有一个可执行文件,该文件要保护以防止更改文件版本信息。

最初,我认为使用证书对exe进行签名可以解决此问题,但是当您使用免费的实用程序修改文件版本信息时,数字签名似乎仍然保持不变。

我认为唯一的方法是执行某种checksum on the exe,但是这并不理想,因为我担心这会导致各种后处理程序(混淆,反调试等)出现问题。 ),我正在执行该操作,拒绝在运行时访问.exe。

还有其他方法可以检测文件版本信息是否已被修改吗?

1 个答案:

答案 0 :(得分:1)

如果仅更改可执行文件的1个字节,则证书无效。 似乎您使用的是Windows资源管理器的“属性”窗口,更改版本号后,仍然可以看到“数字签名”选项卡。这在Windows中对可执行文件的数字签名很有误导性,但事实并非如此。 此选项卡仅表示文件包含证书,但与该证书的验证无关。在此选项卡中,单击证书,然后单击详细信息,现在在打开的窗口顶部,您可以看到该证书有效或无效。

通过使用Windows API,您可以检查证书是否有效,也许this topic帮助您使用C#。