Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#6

Re: Wie herausfinden ob eine Ausführbare gepackt ist?

  Alt 17. Jun 2006, 23:41
Zitat von Metal_Snake2:
@Olli: Ist das nicht ein bischen zu aufwendig? Das benötigt sicherlich auch einiges an rechenzeit. Der Process Explorer erkennt eine gepackte exe wie ein flitzebogen
Und du bist dir sicher, daß der *alle* Packer erkennt?! Die Standardpacker kann man mit Signaturen erkennen, keine Frage. Deine Frage war aber generisch gestellt und so habe ich sie beantwortet.

Zitat von himitsu:
Wenn die Datei aber gepackt wurde, dann ist doch am Anfang der EXE ein winziges Programm (der Entpacker), welches stattdessen die entpackte Version der EXE im RAM ablegt und diese dann ausführt.

Denn der Computer kann ja nur mit der entpackten Version arbeiten.

Also wenn das Abblid im RAM anders ist, als die Daten in der EXE, dann wurde es verändert und demnach könnte die EXE also gepackt sein.
Am einfachsten bräuchte man wohl nur die Größe des Abbildes mit der der EXE vergleichen ... es müßte ja größer sein.
Das ist etwas naiv:
1.) kann sich das Datensegment auch so ändern
2.) ist die Ausrichtung im Speicher anders als auf Platte, die Daten unterscheiden sich also schon per-se!

Außerdem kommt es dann noch darauf an, welche Form der Entpacker wählt:
1.) reserviert er eine Section in der PE-Datei, die in der Datei 0 Byte, im Speicher aber x (x>0) ist?
2.) benutzt er VirtuallAlloc & Co. um Speicher für die entpackten Daten zu allozieren?
3.) benutzt er eine völlig unbekannte Form?

Ja, die von mir beschriebene Methode ist nicht schön, sie kostet Rechenaufwand, sie ist nicht perfekt - aber besser geht es meines Erachtens nach aktuell noch nicht.
  Mit Zitat antworten Zitat