Ich schreibe Malware-Erkennung basierend auf Signatur-Scans. Wie ich verstanden habe, besteht die Hauptidee darin, die Signatur der gescannten Datei mit den Signaturen in Ihrer Blacklist zu vergleichen. Ich fand, dass die Signatur eine Art MD5-Hash ist, aber wie kann ich es aus der Datei bekommen? Und gibt es noch andere Arten von Signaturen?Erkennung von Signatur-Malware
Antwort
Ein MD5-Hash ist ein Auszug aus dem Inhalt einer Datei. Wenn Sie eine schwarze Liste von MD5-Hashes haben, können Sie eine Datei mit ihnen vergleichen. Ich denke, das wäre eine ziemlich simple und zerbrechliche Art, nach Malware zu suchen, aber es ist definitiv ein Anfang. Dies wäre fragil, da der Vergleich von MD5-Hashes nur dann erkennen würde, wenn zwei Dateien genau identisch sind. Jede Art von Zufälligkeit, die in eine bösartige Datei eingefügt wird, würde diese Methode des Scannens nutzlos machen.
Die meisten Sprachen verfügen über eine Standardmethode zum Generieren eines MD5-Hashs. C#, VB und VC++ die MD5 Klasse verwenden können, PHP hat die hash Funktion („MD5“ als erstes Argument verwendet wird), in Java Sie MessageDigest haben usw.
Es gibt eine Reihe von anderen verfügbaren hashing algorithms, die könnte sein verwendet für diesen Zweck. Es hat sich gezeigt, dass MD5 für bestimmte Anwendungen fehlt, und daher werden die SHA-Algorithmen für diese Anwendungen sehr standardisiert. Für diese Anwendung, bei der Sie nicht erwarten würden, dass eine böswillige Attacke versuchen würde, eine Übereinstimmung zu erzeugen, sondern eher das Gegenteil von Versuchen, eine Übereinstimmung zu verhindern, sollte jeder Hash-Standardalgorithmus einschließlich MD5 angemessen sein, um sicherzustellen, dass keine Fehlalarme auftreten gesehen werden.
Zum Eingeben von Nachrichten in Java können Sie MessageDigest verwenden. Laut javadoc unterstützt es MD5, SHA-1 und SHA-256.
[Unterschrift scannen] (http://stackoverflow.com/questions/13152150/signature-scanning/13197718#13197718) –