[Tuto-Cracking] TheHardButcher 3

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.

TheHardButcher

Programmeur C/C++
V
Dec 14, 2009
1,461
58
964
France
Bonjours, et bienvenue pour ce 3e tuto, qui je l’avoue a mis un peu de temps a venir !


Nous allons cette fois ci changer radicalement notre technique, car a la place de changer la vérification de mot de passe par un nop, nous allons trouver un mot de passe valide !


Pour réaliser ce tuto, vous aurez besoin :
- ollydbg
- Le CrackMe 1 de TheHardButcher Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!


Comme pour la dernière fois, je sais vu que je l’ai crée qu’il n’est pas packer, donc je n’utilise pas PEID pour voir si il l’est.


Je vais donc directement l’ouvrir dans ollydbg et chercher dans les strings data references ( je sais déjà un peu ce que je fait car le crackme a déjà été utilisé pour le dernier tuto )
Et je retrouve facilement la position que j’avais avant.


Pour réussir a trouver le pass juste, je vais exécuter le programme pas par pas a partir d’un point défini qui sera un Break Point.


Quand le programme est lancé ( bouton play ) il ne s’arrêtera pas tant qu’il n’y aura pas de break point ou d’attente sur l’utilisateur.


Je met donc un Break Point grace a la touche F2 sur


004013A2 �. C70424 0A3140 MOV DWORD PTR SS:[ESP],OFFSET TheHardBut ; ASCII « %d »


Qui est la demande de pass ( pas encore la vérification )
Je lance donc le programme avec le petit bouton play, et le programme break directement.


J’utilise ensuite les bouton F7 et F8 pour faire des Step into et Step Over. Pour faire simple, je vais exécuter le programme ligne par ligne, mais les step into rentrerons dans les call.


Je fait donc F8 jusqu’à ce que la demande de mot de passe soit totalement faite et rentre un pass au hazard.
Ensuite, je continue mon avancé jusqu’au


004013C6 �. 3D D76A641B CMP EAX,1B646AD7


Qui est une comparaison entre 2 membre, EAX et le nombre hexadécimal 1B646AD7.


Je voit en haut a droite en double cliquant sur EAX que sa valeur signé est égal a notre pass rentrée, je sais donc que le pass entrée est comparé a 1B646AD7 qui doit être le bon pass !


Pour convertir rapidement, je vous conseil de double cliquer sur l’un des registre, de donner votre valeur hexa, et vous la verrez directement en variable signé et non signé.
Faite ensuite Annulez et tester le pass qui doit être 459565783, magnifique ça marche !


Nous avons donc trouvez le bon pass, et nous savont, vu que le pass rentrée était dans le registre EAX et que ce dernier était comparé a une valeur fixe et que ce pass est le seul et unique qui marche !


Voila, cette fois ci, vous devez être un peu déboussolez, mais ne vous inquiétez pas, les prochains tuto vous aiderons a bien assimiler l’utilisation d’olly car nous allons faire la même manipulation avec des programmes légèrement différent du premier !




Merci a tous pour votre lecture !


-> TheHardButcher
 

Jilakin

Nouveau membre
Nov 2, 2011
2
0
301
J'ai fait de même pour le "crackme4" de ton autre poste, seulement le CMP n'est pas en EAX mais en DWORD.
Et bizarrement j'arrive pas à trouver le bon mot de passe, il me donne en EAX sur l'onglet de droite en haut : 00000001. Ça ne peut pas être ça.
 

TheHardButcher

Programmeur C/C++
V
Dec 14, 2009
1,461
58
964
France
Bon, je vais essayer d'être le plus simple et compréhensible, sans donner la réponse ( car ce crackMe en question n'est pas de moi et je ne veut pas spoiler le résultat ^^ )
Ta comparaison dans ce dernier est :
CMP DWORD PTR DS:[405040],163B37
On compare donc un DWORD qui est en 405040 ( en gros hein ) avec 163B37.

Bon, je pense en avoir déjà trop dit ... :p

Enfin bref, merci quand même d’avoir lut tout mes tuto, ça fait plaisir de ce dire qu'il y a quand même certaine personne qui les lisent, malgré leur difficulté :D
 

Jilakin

Nouveau membre
Nov 2, 2011
2
0
301
Je pensais pas que (toi ou un autre membre) tu viendrais me répondre, donc merci ! :)
D'ailleurs tes tutoriels m'ont donnés envie d'aller plus loin. ;)
Et la bonne nouvelle c'est que j'ai trouvé le mot de passe. :p
 
Status
Not open for further replies.