Besoin d'aide unpack PC Guard + UPX

Vous avez un problème pour cracker ou vous souhaitez parler de reversing en général...

Besoin d'aide unpack PC Guard + UPX

Messagepar snipzz » 17 Janvier 2018, 20:15

Bonjour, j'essaie d'unpack un soft bien connu de ce forum qui est pack avec UPX suivi de PcGuard 5.0

J'utilise la technique de bypass les exceptions et de m’arrêter à la dernière.
Je n'aime pas ne pas savoir ce que je fais mais je n'ai jamais vraiment pris le temps de trouver comment fonctionnait PcGuard.
J'ai simplement essayé de trouver le caller de Kernel32.ExitProcess avec un hwbp mais pas moyen de remonter, le code se modifie tout seul, je comprends rien :lol:

J'arrive à unpack des logiciels que j'ai pack avec UPX assez facilement mais pas celui-ci :? .

Donc mon premier problème est que lorsque j'ai passé les exceptions et qu'il faut mettre un breakpoint sur la section .code.

Là je ne sais pas si c'est PcGuard qui y accède ou UPX pour décrypter?

Le problème se trouve que je ne sais pas quelle est la section correcte oú mettre mon BP car si je vais dans la memory map, il m'indique une section "code" mais si je réanalyse le code, la section code ne correspond plus à la même section.

J'ai réussi à trouver un break qui m'amène à un endroit ensuite je dois ensuite scroll (assez loin quand même) pour y trouver une routine qui semble vraiment être le POPAD de UPX

Image

Je me dis donc que j'ai trouvé, je mets donc un bp au JMP, je break et je suis le jump, ce qui m'amene à ça :

Image

Je fais donc Dump process avec OllyDumpEx mais le problème c'est qu'il m'indique vraiment beaucoup de sections avec des noms corrompus et m'indique en bas CorruptSection et lorsque je dump, il me dit "Invalid Virtual Offset Detected", si je continue, je me retrouve avec un exe de 150Mo non Win32 :lol:

Voilà merci de votre aide :p
snipzz
Débutant
Débutant
 
Messages: 32
Inscription: 23 Septembre 2015, 20:18

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar etherlord » 18 Janvier 2018, 08:42

Il faut déjà déterminer lequel enveloppe lequel. On ne peut pas mélanger deux packers, il y a eu une passe de l'un et une passe de l'autre.

UPX, c'est bien comme premier exercice, c'est très simple quand même.

Donc, pour te faciliter la tâche, télécharge UPX, tu lance la décompression et si cela marche, tu aura éliminé une couche du problème et tu pourra te concentrer sur ce qui est intéressant.

Un exécutable qui est considéré comme n'étant pas une application valide, c'est probablement que l'en-tête PE est erronée. Il y a de nombreux logiciels qui peuvent évaluer les problèmes dans un en-tête PE.

etherlord
etherlord
Triumvirat
Triumvirat
 
Messages: 2549
Inscription: 22 Mars 2004, 16:12

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar baboon » 18 Janvier 2018, 12:00

à vue de nez tu as l'air d'être à l'OEP. Tente d'utiliser un autre dumper un peu plus moderne comme Scylla et essaie de voir si tu ne peux pas fix le PE en mémoire.
Newbie mais ayant soif d'apprendre et étant motivé
Avatar de l’utilisateur
baboon
Modérateur
Modérateur
 
Messages: 3346
Inscription: 08 Juillet 2005, 17:49

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar snipzz » 18 Janvier 2018, 14:05

Alors là magnifique, le soft se lance, effectivement baboon j'utilisais de trop vieux outils pour dump :lol: Merci !

@etherlord, je savais déjà qu'il avait été packé par upx puis ensuite par PC Guard, donc il fallait malheureusement se défaire de PC Guard avant UPX ^^
Oui le PE était vraiment corrumpu, comment c'est possible ? PC Guard le détruit quand il décompresse ?

L'exe me semble malgré tout assez petit dans olly (3/4 de 0) et aussi, savez vous pourquoi les boutons s'affichent à la mode windows 98 ? :lol:

Image

Si je debug avec olly 2 cette fois, j'ai déjà un access violation sans même rien faire, comment c'est possible ?

Edit: Olly 2 ne s'arretait pas à l'OEP j'ai trouvé qu'il fallait décocher "Unpack SFX modules automatically", si quelqu'un pouvait m'expliquer
snipzz
Débutant
Débutant
 
Messages: 32
Inscription: 23 Septembre 2015, 20:18

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar snipzz » 19 Janvier 2018, 18:39

J'aurais besoin de votre aide svp.

J'essaie de trouver la routine de vérification de l'activation mais je n'ai rien de concluant :x

j'ai posé un BP sur USER32.MessageBoxA, ça break dessus mais il y a beaucoup de return dans le stack, je n'arrive pas vraiment trouver un code qui se déclenche uniquement lorsqu'il y a vérification du sérial.

Avez vous des techniques pour éliminer les codes qui ne font pas partie de la vérification du "sérial" (par exemple, une fonction qui appelle le MessageBox) sans passer beaucoup de temps sur chaque call

Merci
snipzz
Débutant
Débutant
 
Messages: 32
Inscription: 23 Septembre 2015, 20:18

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar baboon » 21 Janvier 2018, 15:22

Il n'y a hélas pas vraiment de méthode magique...
Tentes de retrouver le code d'une autre manière, par exemple en tentant de trouver le code qui lit le serial ou regarde les fichiers / clé de registre lus au démarrage de l'appli avec ProcMon :)
Newbie mais ayant soif d'apprendre et étant motivé
Avatar de l’utilisateur
baboon
Modérateur
Modérateur
 
Messages: 3346
Inscription: 08 Juillet 2005, 17:49

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar snipzz » 21 Janvier 2018, 19:32

J'ai effectivement changé de méthode d'approche en recherchant les messages qui indiquaient que la license était valide (ou pas)

Je suis donc tombé sur cette partie qui était intéressante.

Image

Ça semble être la routine de création de la fenêtre about qui affiche à l'intérieur l'état de la licence.
Le call où l'on voit un BP renvoit -2, -1, 0 (EBX) ou 1. Si je change eax à 1, ça m'affiche fully registered/activated, ce qui signifie que c'est bien la fonction qui check la license.
J'ai aussi remarqué que le paramètre passé à 42ce61 (PUSH -1) veut dire "affiche une MessageBox si le logiciel n'est pas activé". Par exemple, à -1 ça ne l'affiche pas et à 1 ça affiche le message. Pour la fênetre about c'est PUSH -1 car le logiciel ne veut pas afficher le message d'erreur puisqu'il ne s'agit que d'une info. Il y a plein de references à cette fonction et toujours les mêmes cmp sur eax.

J'ai un problème, c'est que si j'essaie de break au return de la fonction qui check la licence, j'ai un access violation car la fonction ne se termine pas par un retn normal mais fait un trèèès long jump et execute beaucoup trop d'instructions pour pouvoir faire une analyse du coup je fais un ctrl+f9. D'ou ça vient ça ? Le jump ressemble à ça

Image

J'ai comme l'impression qu'il y a des protections car j'avais trouvé une valeur dans le programme à changer de 1 à 0 qui activait le programme mais certaines infos importantes dans le programme se transformaient en "N/A"

Le logiciel peut être téléchargé ici : <etherlord : supprimé, pas de liens même indirects vers des sites d'éditeurs, ceux qui veulent voir l'original te demande le nom par MP>
Mon fichier déjà décompressé : hxxps://mega.nz/#!IMRl0AaD!em7ZaJNPzUvRW3ey0CddrZID4QgQhRb6nVNbFV7zAZk
snipzz
Débutant
Débutant
 
Messages: 32
Inscription: 23 Septembre 2015, 20:18

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar baboon » 23 Janvier 2018, 11:38

Ca ressemble très fort à du code obfusqué / redirigé, probablement que ton code n'est pas correctement unpacké (il reste des redirections) ou qu'il a été sur-protégé par un gestionnaire de licence / obfuscateur.
Je penche pour la deuxième solution mais sans certitude... je ne connais pas assez PC-Guard
Newbie mais ayant soif d'apprendre et étant motivé
Avatar de l’utilisateur
baboon
Modérateur
Modérateur
 
Messages: 3346
Inscription: 08 Juillet 2005, 17:49

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar snipzz » 24 Janvier 2018, 23:00

Quelques pistes pour m'aider à avancer ? Je n'ai aucune idée de comment faire pour nettoyer ce code.
snipzz
Débutant
Débutant
 
Messages: 32
Inscription: 23 Septembre 2015, 20:18

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar etherlord » 26 Janvier 2018, 08:50

Le problème dans ce cas là c'est de déterminer si quelques chose à été loupé lors de l'unpacking ou si le programme déchiffre des blocs à la volée.

Il faut valider que le fichier est ok (table d'imports, en-tête, etc..). Le programme dumpé, il tourne si tu le lance tout seul ou pas ?

SI tu te positionne ou tu est resté, et que tu trace pas à pas, tu verra si à un moment tu arrive vers une boucle qui modifie le contenu d'un emplacement mémoire qui correspond au programme,
auquel cas il faut atteindre cette boucle pour avoir le programme en clair.


j'ai un access violation car la fonction


Est-ce que tu a tenté de passer l'exception au programme ?

etherlord
etherlord
Triumvirat
Triumvirat
 
Messages: 2549
Inscription: 22 Mars 2004, 16:12

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar snipzz » 26 Janvier 2018, 14:26

Oui le programme fonctionne parfaitement, j'arrive même à le cracker partiellement en fait, c'est à dire si je modifie tous les appels à la fonction qui vérifient la licence comme j'ai expliqué au dessus.

Mais cette fonction je n'arrive pas à comprendre le fonctionnement car elle se termine par un GE, suivi d'un JMP (très loin de 42ceef à 5f78de) qui arrive à ça

Image

Qui jump ensuite vers ici

Image

Qui est une fonction interminable avec f8

Etherlord, par passer les exceptions au programme tu veux dire shift+f9 ? Si oui, je l'ai déjà fait, l'erreur que j'ai c'est un Access violation when writing to 00003869, surement un anti-debugger ?
Je ne pense plus qu'il y ait de code qui se modifie encore à la volée, je dirais plus qu'il a été modifié pour qu'on ne comprenne plus le fonctionnement de la partie vérification de licence.
D'ailleurs après l'avoir unpacké moi même j'ai découvert que Peid pouvait le faire lui même :lol: et il me donnait le même OEP.
snipzz
Débutant
Débutant
 
Messages: 32
Inscription: 23 Septembre 2015, 20:18

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar Hao » 26 Janvier 2018, 21:45

snipzz a écrit:Etherlord, par passer les exceptions au programme tu veux dire shift+f9 ?


Edit : oui shift+f9 dans olly.
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 286
Inscription: 27 Novembre 2013, 22:24

Re: Besoin d'aide unpack PC Guard + UPX

Messagepar baboon » 29 Janvier 2018, 11:08

C'est tout à fait normal que tu ne comprennes pas, c'est fait pour :)
C'est obfusqué.
Il n'y a pas vraiment de méthode miracle, il va falloir te taper le code et tenter de comprendre ce qu'il fait ou de deviner ce qu'il fait à partir de ses effets de bord. Bon courage :D
Newbie mais ayant soif d'apprendre et étant motivé
Avatar de l’utilisateur
baboon
Modérateur
Modérateur
 
Messages: 3346
Inscription: 08 Juillet 2005, 17:49


Retourner vers Reversing

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 8 invités

cron