Um deine Frage noch ein wenig zu beantworten. Grundsätzlich arbeiten alle diese Detektoren nach dem gleichen Prinzip: Sie suchen Muster. Machmal Texte, manchmal Signaturen von Methoden, manchmal auch spezialisiert auf den Entry Point (der Verrät oft sehr viel). Aber auch Einträge in der IAT, Sektionsnamen oder cryptografische Signaturen (fällt eigentlich unter Methodensignaturen, ich nenns aber nochmal) könnten zur Rate gezogen werden.
Man kann das Ganze sicherlich noch komplexer aufbauen. Ein gutes Beispiel sind hier die Antivirenprogramme, welche ja, vorallem früher, sehr viel Anhand von simplen Mustern arbeiteten. Heutzutage setzt man eher auf Heurisik, man schaut also welche Methoden die Binary hat oder aus Dlls nutzt und trifft dann eine Einschätzung zur potentiellen Gefahr. Oder man geht gleich in die Sandboxed Execution und schaut was die Binary so anstellt.
(zu meiner Malwarezeit gab es Virenscanner, deren Muster trafen schon nicht mehr zu, wenn man das Icon änderte ...).
Um herauszufinden wie PEiD arbeitet, werfen wir mal einen Blick in die README:
Quote:
There are 3 different and unique scanning modes in PEiD.
The *Normal Mode* scans the PE files at their Entry Point for all documented signatures. This is what all other identifiers also do.
The *Deep Mode* scans the PE file's Entry Point containing section for all the documented signatures. This ensures detection of around 80% of modified and scrambled files.
The *Hardcore Mode* does a complete scan of the entire PE file for the documented signatures. You should use this mode as a last option as the small signatures often tend to occur a lot in many files and so erroneous outputs may result.
The scanner's inbuilt scanning techniques have error control methods which generally ensure correct outputs even if the last mode is chosen. The first two methods produce almost instantaneous outputs but the last method is a bit slow due to obvious reasons!
|
Zusätzlich schauen wir uns mal eine userdb.txt an (über diese Datei kann man PEiD mit neuen/aktuellen/eigenen Signaturen füttern. Leider gibts auch hier keine wirklich aktuelle.):
Code:
[UPX 0.50 - 0.70]
signature = 60 E8 00 00 00 00 58 83 E8 3D
ep_only = true
[UPX 0.72]
signature = 60 E8 00 00 00 00 83 CD FF 31 DB 5E
ep_only = true
[UPX 2.00-3.0X -> Markus Oberhumer & Laszlo Molnar & John Reiser]
signature = 5E 89 F7 B9 ?? ?? ?? ?? 8A 07 47 2C E8 3C 01 77 F7 80 3F ?? 75 F2 8B 07 8A 5F 04 66 C1 E8 08 C1 C0 10 86 C4 29 F8 80 EB E8 01 F0 89 07 83 C7 05 88 D8 E2 D9 8D ?? ?? ?? ?? ?? 8B 07 09 C0 74 3C 8B 5F 04 8D ?? ?? ?? ?? ?? ?? 01 F3 50 83 C7 08 FF ?? ?? ?? ?? ?? 95 8A 07 47 08 C0 74 DC 89 F9 57 48 F2 AE 55 FF ?? ?? ?? ?? ?? 09 C0 74 07 89 03 83 C3 04 EB E1 FF ?? ?? ?? ?? ?? 8B AE ?? ?? ?? ?? 8D BE 00 F0 FF FF BB 00 10 00 00 50 54 6A 04 53 57 FF D5 8D 87 ?? ?? ?? ?? 80 20 7F 80 60 28 7F 58 50 54 50 53 57 FF D5 58 61 8D 44 24 80 6A 00 39 C4 75 FA 83 EC 80 E9
ep_only = false
[UPX V1.94 -> Markus Oberhumer & Laszlo Molnar & John Reiser]
signature = FF D5 80 A7 ?? ?? ?? ?? ?? 58 50 54 50 53 57 FF D5 58 61 8D 44 24 ?? 6A 00 39 C4 75 FA 83 EC 80 E9
ep_only = false
[UPX v2.0 -> Markus, Laszlo & Reiser]
signature = 55 FF 96 ?? ?? ?? ?? 09 C0 74 07 89 03 83 C3 04 EB ?? FF 96 ?? ?? ?? ?? 8B AE ?? ?? ?? ?? 8D BE 00 F0 FF FF BB 00 10 00 00 50 54 6A 04 53 57 FF D5 8D 87 ?? ?? 00 00 80 20 7F 80 60 28 7F 58 50 54 50 53 57 FF D5 58 61 8D 44 24 80 6A 00 39 C4 75 FA 83 EC 80
ep_only = false
[UPX V2.00-V2.90 -> Markus Oberhumer & Laszlo Molnar & John Reiser]
signature = FF D5 8D 87 ?? ?? ?? ?? 80 20 ?? 80 60 ?? ?? 58 50 54 50 53 57 FF D5 58 61 8D 44 24 ?? 6A 00 39 C4 75 FA 83 EC 80 E9
ep_only = false
PEiD ist also ein sehr simpler Detektor (für das Jahr 2008 ausreichend). Es gibt pro Eintrag nur eine Signatur. Und diese befindet sich entweder am Entry Point (ep_only) oder irgendwo in der Datei.
Und daraus erklärt sich auch dein Ergebnis. Für den Normalen und den Deep Scan hatte PEiD einfach keine Signatur gefunden. Beim Hardcore-Scan wurde dann einfach der beste Match genommen. Wie dieser bestimmt wird, lässt die README ja leider offen. Schätze mal das war damals "Betriebsgeheimnis".
Die Tatsache, dass dort "Windows Icon Graphics Format" rauskam, führt zu der Annahme, das die Applikation ein Icon als Resource in der Binary hat

Falls das zutrifft, wars also kein False-Positive. PEiD hat ja schließlich das Icon gefunden. Es war nur nicht das, was man sich erhofft hatte