![]() |
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
Hi,
also ich hätte da einen Lösungsansatz. Man sucht sich die Raw Size und die Virtual Size der einzelnen Sections raus und vergleicht diese. Wenn sich R.Size und V.Size deutlich unterscheiden kann man davon ausgehen das diese .exe, .dll gepackt ist. Aber aufgepasst, das die V.Size der .DATA Section sich stark gegenüber der R.Size unterscheiden kann liegt wohl daran das der Programmierer schonmal viel Memory pre-allocated also reserviert hat für irgendwelche Variablen oder Arrays. Hier mal ein Beispiel einer gepackten Exe mit Aspack : Zitat:
Zitat:
Das ist mir bei vielen Packern aufgefallen. Es wäre halt ein Weg um ne grobe Analyse zu zeigen. Bye |
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
Zitat:
|
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
Zitat:
Ich habe schon mehrere Anwendungen geschrieben, wo ich absichtlich und unter Vollbesitz meiner geistigen Kräfte die Sektionsparameter angepaßt habe. Daß dir das bei einer Delphi-EXE selten passieren wird, ist mir klar. Andere Sprachen/Compiler lassen solche Modifikationen aber zu ... (und diese Modifikationen können gute Gründe haben, wie zB Speicher, welcher vom Loader alloziert wird und direkt ohne Umwege von der EXE benutzt werden kann). Und nochmal für Metal_Snake2: es gibt keinen Unterschied zwischen gepackten und sog. verschlüsselten PE-Dateien. Wenn du generisch etwas rausbekommen willst, ist die Verteilung (Stichwort: Histogramm) noch die beste Chance, allerdings auch nur unter der Annahme, daß es sich nicht um eine "Verschlüsselung" ala ROT13 handelt. |
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
@Lillebrohr:
Danke für den ansatz, jedoch funzt das bei mir nicht. Ich Öffne mit dem PE-Explorer einmal die mit UPX Komprimierte datei und die nicht Gepackte Datei, jedoch merke ich keinen unterschied zwichen den einzelnen größen der PE Section Headers. Die Ausführbaren dateien waren klein, gepackt 20KB und undgepackt 31KB, villeicht kann es auch daran liegen?? Jedoch waren die werte absolut identisch. @Olli: Ja deine idee ist wohl eher die "Vollständig" Funktionierendere Methode, jedoch würd ich lieber eine einfachere lösung vorziehen, wie z.B. unterschiedliche werte zu vergleichen den an irgendweiner stelle muss sich ja eine gepackte und nichtgepackte ausführbare unterscheiden. Nachtrag: mir ist aufgefallen das gepackte exe datein keine Relocation Table beinhalten, villeicht kann man ja dort ansetzen. |
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
Zitat:
Zitat:
Eine Heuristik ist da eben die beste Methode. Alternativ: Emulator ... |
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
20/31KB, wer kommt denn aus diese Idee so'ne Datei nohmals zu packen?
ich meine ... irgendwo kann man es auch übertreiben. |
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
Zitat:
|
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
hmmm, aber selbst auf 'ne Diskette würden dann immernoch tausende dieser "Demos" draufpassen ... Platzmangel sollte doch bei diesen Kleinen (Größen) wohl keiner herschen :stupid:
|
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
Hier mal ein paar Ansätze die man geschickt kombinieren muss um ein möglichst gutes Ergebnis zu erzielen. Dabei wird dann aber auch ein Crypter etc. als Packer erkannt.
Es dürfen nur gängige Sektionnamen benutzt werden (.text .data) Ist bei einer Sektion die Rawdatengröße 0 dann ist es (wahrscheinlich) gepackt Welche Daten stehem am Entrypoint? siehe z.b. Programm PeID Wo liegt der Entrypoint? Nur in der Codesection und 1. Section erlaubt. (OllyDbg erkennt die unter anderem so) |
Re: Wie herausfinden ob eine Ausführbare gepackt ist?
Hey brechi,
Bei Delphi liegt der EP oft auch in der DATA-Section also wars das mit CODE-Section. @Olli: Zitat:
@himitsu: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz