• STATISTIQUES
  • Il y a eu un total de 0 membres et 32586 visiteurs sur le site dans les dernières 24h pour un total de 32 586 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Hack this site
    Basic: 11, Realistic: 17, Application: 18, Programming: 12, Extbasic: 14, Javascript: 7, Stego: 17
    Challenges
    [EN] Packet Storm
    Packet Storm est un site qui combine nouvelles de la sécurité informatique, téléchargemen...
    Vulnérabilités
    [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumulÃ...
    Challenges
    [FR] Microcontest
    Cryptographie: 7, Mathématiques: 8, Image Son Vidéo: 5, Intelligence artificielle: 3, Réseau: 2, Divers: 7, Phy...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Unpack un binaire packé avec UPX
07-09-2012, 23h02 (Modification du message : 08-09-2012, 02h39 par crown.)
Message : #1
crown Hors ligne
Membre actif
*



Messages : 52
Sujets : 5
Points: 18
Inscription : Oct 2011
Unpack un binaire packé avec UPX
Unpack UPX

0x00 Introduction :

Salut les poneys alors aujourd’hui j'ai décidé de faire un petit tutoriel sur, " comment unpacker un binaire packé avec UPX " [1], bon il n'est pas nécessaire d'avoir des connaissances en langage ASM.

0x01 Pré-requis :

0x02 Try to unpack me !

C'est partit donc comme tout bon cracker Big Grin un petit reflex doit vous venir à l'esprit qui est de passer le binaire dans PEid ou StudPE.

[Image: 636853peid.png]

Comme on peut le voir ici PEid ne nous apprends rien nous essayons donc avec StudPE.

[Image: 656420studpe.png]

Avec StudPE on voit qu'il détecte le packer UPX il nous faut donc l'unpacker si on veut pouvoir travailler sur notre binaire. Maintenant que nous savons qu'il est packé nous le lançons dans ODBG puis on tombe nez-à-nez avec un PUSHAD qui est le debut de la routine du loader qui va être lancé pour pouvoir déchiffrer le programme.

Ici nous avons notre EP (Entry Point) c'est lui que nous allons changer pour que le programme puisse commencer sur le programme et non le loader.
Adresse de l'EP : 00466290, gardons cela en tête pour plus tard.

Il nous faut maintenant trouver un POPAD qui signifie la fin de la routine de déchiffrement. L'instruction POPAD a une valeur hexadécimal de 61 on fait donc un CTRL + B puis dans la case Hex + 00 on y met le nombre 61.

On tombe ensuite sur cette ligne, la ligne du POPAD :

[Image: 982990popad.png]

Ici comme nous pouvons l'observer il y a, à l'adresse 00466413 un JMP [10] qui va jumper sur l'OEP (Original Entry Point) ce qui nous amèneras au début du programme unpacké. Donc on appui sur F9 on vois une fenêtre qui s'ouvre puis on clique sur la ligne du JMP et on appui sur Entrer. Normalement on arrive ici :

[Image: 945858ollycall.png]

On note l'adresse à laquel on tombe qui est 00401280 puis on ouvre LordPE on cherche notre programme (débuggé) puis on clique droit dessus puis on fait un "dump full".

[Image: 268031lordpe.png]

On se retrouve donc avec un programme du nom de dumped.exe mais si vous le lancez il ne marchera pas puisqu'il manque touts les DLL et les librairies il va donc falloir les reconstruire.

Il faudra aussi changer l'EP (Entry Point) pour que le programme aille directement à l'OEP (où le programme est unpack) et non sur le loader.

Donc on ouvre ImportRec puis on cherche notre programme en cour qui est unpacké (dans OllyDbg) :


[Image: 484323ImportRec.png]

On voit sur la dernière ligne que l'Image Base est 00040000 on note ça quelque part puis la il va nous falloir faire une petite soustraction pour trouver l'OEP qui n'est autre que EP - Image Base = OEP. On a donc 00401280 - 00400000 = 00001280, on écrit cette valeur dans OEP puis on clique sur IAT AutoSearch, ça devrait vous affichez un jolie message qui dit que l'adresse a bien était trouvée.

Il nous dit ensuite de cliquer sur Get Import.
On a maintenant nos DLL puis nos Import Tables recrée, nous pouvons donc fixer le dump en cliquant sur Fix Dump puis en choisissant le fichier dumped.exe.

[Image: 740473success.png]

Là encore une fois un beau message disant que l'opération c'est bien passée, ImportRec vient de crée un fichier Dumped_.exe qui est votre fichier final unpack.

Aperçu des strings sur le binaire packé :

[Image: 292282patchme.png]

Et voilà le fichier dumped_.exe crée par ImpRec avec les imports tables et les DLLs et bien sûr unpacké :

[Image: 3qt9dn.jpg]

Voilà on arrive à la fin de ce tutoriel entièrement rédigé par moi-même, et ça m'a pris pas mal de temps donc j'espère qu'il vous plairas, surtout si vous avez des questions n'hésitez car pour des débutants ça peut tout de suite devenir assez technique.
+1 (6) -1 (1) Répondre


Messages dans ce sujet
Unpack un binaire packé avec UPX - par crown - 07-09-2012, 23h02
RE: Unpack un binaire packé avec UPX - par 0pc0deFR - 31-05-2013, 19h31

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Débuter en reverse engineering avec 0$ 0x41 9 611 14-09-2012, 19h55
Dernier message: LR-6

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut