少しの背景から始めましょう。2つのバイナリファイルで一致するシーケンスを見つける
今朝私たちのユーザーのうちの1人は、TestpassのセットアップファイルがCAアンチウイルスによってウイルスに感染していると報告していました。これが偽陽性であると確信して、Webを見て、別のプログラム(SpyBot)のユーザーが同じ問題を報告していることがわかりました。
今、実際の質問です。
ファイル内の特定のバイナリシグネチャを探していると仮定して、私は両方のファイルで一致するシーケンスを見つけて、そのシーケンスが表示されないようにセットアップスクリプトを微調整する方法を探しています。
私はPythonで次のことを試しましたが、これは長時間実行されていましたが、より良い、またはより速い方法があるかどうか疑問に思っていました。
from difflib import SequenceMatcher
spybot = open("spybotsd160.exe", "rb").read()
testuff = open("TestuffSetup.exe", "rb").read()
s = SequenceMatcher(None, spybot, testuff)
print s.find_longest_match(0, len(spybot), 0, len(testuff))
これを行うためのPythonや他の言語用のライブラリがありますか? 問題に取り組むにはまったく異なる方法があります。