如何(以编程方式)验证exe是否被篡改?

时间:2016-07-11 11:22:18

标签: c++ winapi ssl-certificate digital-signature code-signing

上下文:第三方exe尝试与我的应用程序通信。我的应用程序应确保第三方exe不被其所有者以外的任何人篡改或修改。外部PE和我的应用程序都在同一台机器上运行,外部PE依靠COM接口从我的应用程序中获取所需的数据。

我在某种程度上意识到,使用CA证书签署可执行文件的唯一目的是确保真实性和完整性。因此,我必须验证外部PE的证书以确认其身份。但是我仍然有以下疑问。

1)Win-API提供WinVerifyTrust和CertVerifyCertificateChainPolicy函数。这两个函数都可用于可执行文件的信任验证。那么区别是什么呢?在哪种情况下我应该使用哪种功能?

2)即使我们使用这些功能验证证书,恶意应用程序是否可能欺骗证书(冒充有效的exe)或通过其他方式欺骗它并连接到我的应用程序?

提前感谢您的帮助。

0 个答案:

没有答案