Frage

Ich versuche herauszufinden, wie ich feststellen kann, ob eine Binärdatei mit UPX komprimiert wurde. Ich verwende eine einfache CRC, um festzustellen, ob meine App in irgendeiner Weise verändert wurde und ob die CRC aufgrund eines Packers an der Größe fehlgeschlagen ist, möchte ich das als OK erkennen.

Im Moment fange ich mit UPX an.

Gibt es also einen Marker auf der Binärdatei? Gibt es bestimmte JMP oder andere Anweisungen, nach denen ich suchen sollte?
Dies wird hauptsächlich in Windows getestet, aber in Zukunft könnte ich es auch zu Linux hinzufügen.

Jede Hilfe (und Code) wird geschätzt.

HINZUGEFÜGT:

Ich fand, dass ich in den 10 Binärdateien das überprüfte

AddressOfEntryPoint
Import Directory RVA
Resouce Directory RVA

Zeigen Sie entweder auf UPX oder haben Sie einen Offset, der von UPX eingestellt ist. Irgendwelche Informationen dazu?

Vielen Dank

War es hilfreich?

Lösung

Sie können versuchen, die Abschnittsnamen der ausführbaren Datei zu überprüfen. UPX ändert sie in upx0, upx1, upx2, glaube ich.

Andere Tipps

Download upx Quellcode von Upx homepage und offen src/p_w32pe.cpp Datei; Die Funktion, nach der Sie suchen, ist;

int PackW32Pe::canUnpack()

Diese Funktion prüft, ob die Datei mit Win32 upx komprimiert ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top