マンスを最適配列の二つのバイナリファイル
質問
まずオフのエリアを表示一部のエリアを。
今朝のユーザーがある"との報告Testuffのセットアップファイルにおいてウイルス感染などにより、CAウイルス対策.ることを確信したことに虚偽、または、webおよびそのユーザーの別のプログラム(SpyBot)を報告して同じ問題です。
今は、実際の質問です。
このウイルス対策では特定のバイナリの署名のファイルを探したいのは、マッチングの塩基配列、アミノ酸配列の両方のファイルを、できればう調節のためには、setupスクリプトを配列から。
また、以下の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や他の言語ることができるのか?完全に見ることができる特別な問題に取り組みを歓迎します。
解決
見 最長共通部分文字列の問題.思difflibのDPソリューションは確かに遅すぎる比較中のファイル.できなければならないとの接尾辞木/arrays.
使用perl ツ::接尾辞 が最も簡単な解決策です。そうでないすべての部分文字列が、指定した長範囲:
@lcs = $tree->lcs;
@lcs = $tree->lcs($min_len, $max_len);
@lcs = $tree->longest_common_substrings;
他のヒント
ご注意いただかなくても簡このようになっておりますが、保証は最長一致が実際に見たします。代わりによく目にすることでしょう共通トの再計算コードまたは文字列テーブルの追加により同じコンパイラを備えています。
なおCAいて教えてくれるかを探るウイルス?
または、コピー、ファイルを変更各バイトまでの警告が消え(ばらく時間がかかる場合がありによってサイズ)。
でのウイルスの検出が多く複雑だったのを探して固定文字列になります。
より良いないの?"と思ってしまうような複雑で時間のアルゴリズムです。
興味がございましたらこち .ps文書リ きもの導入がこのテーマ.
れば良い実装のためのこれらのアルゴリズムが存在しない伝えていきます。
疑いがみのバイナリ文字列がなくなるわけではありませんのお手伝いをします。インストールプログラムがきっ疑いだということです。
きっと打合せにも参加することがありCA spybot白の上におインストーラは、何が抗措置の発動の警戒態勢にあるからです。