获取唯一ID或校验和以检测父应用程序进程的篡改

本文关键字:进程 应用程序 检测 ID 唯一 校验和 获取 | 更新日期: 2023-09-27 18:06:34

如何为父应用程序EXE计算篡改检测的校验和?

它是否像将EXE加载到内存中并在其上运行CRC32一样简单?是否有更好的方法或内置机制来生成每个构建/版本的EXE的唯一ID,以便您可以检测其是否被篡改或模块是否在原始父进程中执行它被编译?

获取唯一ID或校验和以检测父应用程序进程的篡改

您可以使用CodeAccessPermission和权限要求:

http://msdn.microsoft.com/en-us/library/3e879fzy.aspx

Demand()方法抛出SecurityException异常

在运行时,如果所有的调用者在调用堆栈更高没有被授予当前实例指定的权限。

此外,您需要阅读代码签名:

  • http://msdn.microsoft.com/en-us/magazine/cc163583.aspx
  • http://en.wikipedia.org/wiki/Code_signing
  • http://www.codeproject.com/Articles/325833/Basics-of-Signing-and-Verifying-code

下面是一个检查程序集签名的示例:

http://blogs.msdn.com/b/shawnfa/archive/2004/06/07/150378.aspx

为父程序集签名。为子程序集提供父程序集的公钥。如果父程序集是用正确的公钥签名的,那就没问题了。