【发布时间】:2013-10-27 13:36:41
【问题描述】:
我需要检测正在运行的进程中的某些文件。 到目前为止,我已经通过计算整个 exe 文件的 MD5 来做到这一点。这种方法有一个错误:通过编辑图标,在此处添加字节或更改 PE 标头中的某些内容,哈希是不同的。 有了这些信息,它就是“如何比较要评估为相同的不同文件”,这有点模糊,所以让它如何比较 .exe 文件的两个可执行部分(忽略、标题、资源等)。哪些零件不能更改以保持相同的功能?这可能不是最终的答案,因为有几种方法可以表示相同的功能。例如用 unicode 替换字符串或只是更改该字符串。
那么如何计算两个可执行文件的相似度?
我更喜欢 C# 代码,因为应用程序是在 .NET 中的,但我将不胜感激有关此主题的任何建议或想法。
【问题讨论】:
-
这些也是.NET可执行文件吗?
-
为什么?目标是什么?也许有一个解决方案可以回答另一个问题。
-
不,这些是通用可执行文件(.NET 和 NOT) 目标是检测正在运行的进程(可能会稍作更改)它是一个反作弊软件。