わかりましたので、C# で基本的なマルウェア スキャナーを作成しようとしています。私の質問は、特定のコードのビットに対して 16 進数の署名があると言うことです。
例えば
{
System.IO.File.Delete(@"C:\Users\Public\DeleteTest\test.txt");
}
//Which will have a hex of 53797374656d2e494f2e46696c652e44656c657465284022433a5c55736572735c5075626c69635c44656c657465546573745c746573742e74787422293b
- に変更されます
{
System.IO.File.Delete(@"C:\Users\Public\DeleteTest\notatest.txt");
}
//Which will have a hex of 53797374656d2e494f2e46696c652e44656c657465284022433a5c55736572735c5075626c69635c44656c657465546573745c6e6f7461746573742e74787422293b
これらのビットは、プログラムの 16 進数全体に含まれることに注意してください。ベース シグネチャを取得して、90% 一致するとフラグが立てられるという部分一致を探すにはどうすればよいでしょうか。
私はワイルドカードを使用しますが、コーディングがわずかに異なる可能性がありますが、大部分は同じである、もう少し複雑なものでは機能しません。部分文字列のパーセント一致を行う方法はありますか? レーベンシュタイン距離を調べていましたが、この特定のシナリオにどのように適用するかわかりません。
ご意見をお寄せいただきありがとうございます