2013-10-27 64 views
0

我需要檢測運行過程中的某些文件的相似性。 到目前爲止,我已經通過計算整個exe文件的MD5做到了這一點。這種方法有一個錯誤:通過編輯圖標,有增加字節或PE頭改變的東西,哈希是不同的。 有了這個信息,它是「如何比較不同的文件被評估爲相同」,這是有點模糊,所以使它如何比較。exe文件的兩個可執行部分(忽略,標題,資源等..)。什麼是零件,爲了保持相同的功能而無法更改?這propably不會是最終的答案,因爲有多種方式來表示相同的功能。例如用unicode替換字符串或只是更改該字符串。如何計算文件

那麼如何計算兩個可執行文件的相似度?

我更喜歡C#代碼,因爲應用程序在.NET中,但我會很感激任何有關此主題的建議或想法。

+0

這些是.NET可執行也? – ja72

+0

爲什麼?目標是什麼?也許有一個解決方案是對另一個問題的回答。 –

+0

不,這些是通用的可執行文件(.NET和NOT) 目標是檢測正在運行的進程(它可能會稍微改變),它是一個反熱軟件。 –

回答

-1

您可以將文件二進制文件加載到SOUNDEX算法(但對於數字),然後將它們與指定的精度進行比較。我不知道它是如何工作的,但如果改變圖標只改變小字節代碼部分應該很好地工作。

我想補充一點,我不知道這將如何使用文件,但理論上它應該工作得很好。