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

时间:2013-03-28 18:19:30

标签: c# .net security

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

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

1 个答案:

答案 0 :(得分:2)

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

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

Demand()方法抛出SecurityException异常

  

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

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

以下是如何检查程序集签名的示例:

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

签署父程序集。为子程序集提供父程序集的公钥。如果使用正确的公钥对父程序集进行签名,那么您就是好的。如果没有,请失败。