[Tuto-Cracking] TheHardButcher 1

    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
Il est interdit de modifier ce tuto et de le redistribuer sans autorisation.
Si vous désirez le copier, demandez la permission a l'administrateur de ProgSource.fr.cr, mais vous devrez citer le nom de l'auteur ( TheHardButcher ) et ProgSource.fr.cr


Bonjours, et bienvenue pour mon premier tuto.
Je vous prévient déjà qu'il n'est surement pas parfait, qu'il y aura surement des fautes d'orthographe idiote, et je m'en excuse.

Ils vous apprendras quelques bases du cracking, mais sans rentrer dans les détails.
Pour réaliser ce tuto, vous aurez besoin :
- D'un désassembleur ( Win32Dasm suffit, mais prenez plutôt ollydbg si vous le possédez ) Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
- D'un éditeur Hexadécimal.
- Du Crackme4 de NewbieContest ( vous devez vous inscrire sur Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! et allez télécharger le fichier de cette page Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! )
J'utiliserais PEID au début pour vous montrez sont fonctionnement, mais vous n'en aurez pas besoin.

Le but sur le site de challenge, est de trouver un password valide, mais vous, je vais vous demander quelques chose de beaucoup plus simple, car je ne veux pas vous embrouillez n'y permettre a tout le monde de réaliser ce challenge facilement en lisant un tuto ^^
Nous allons donc devoir modifier le fichier pour que tout les password rentré soit considéré comme valide.

D'abord, je vais procéder méthodiquement comme avec n'importe quel crackme.

Je l'ouvre, et regarde ce que je vais avoir a faire. ( bien que ma tache ne sera pas celle demandez dans le crackMe )

272577


Il me demande un pass, en nombre, je test 123456, et me dit que ce n'est pas le bon.
Je sais donc maintenant quels référence string seront a chercher.

Je vais l'ouvrir avec PEID. Voilà ce que sa me donne :
272575

Ce qui me signifie que le Crackme n'est pas packer. Je ne rentrerai donc pas dans les détails cette fois ci.

Je vais donc maintenant pouvoir l'ouvrir avec mon désassembleur.
Pour ollydgb, je doit faire
clique droit --> search for --> all referenced strings
Une fois dans le petit menu qui vient de s'ouvrir, je voie bien tout les dialogs qui m'ont été proposé avec aussi un Bravo, tu peut rentrer le mot de passe sur le site.

Je vais donc cliquer sur un des ces référence, et chercher le moment ou le pass est demandé
CPU Disasm
Address Hex dump Command Comments
004014DD |. 68 60134000 PUSH 00401360 ; ASCII "Rentre le nombre ici pour voir si tu peux valider sur le site
"
004014E2 |. E8 B9170000 CALL <JMP.&msvcrt.printf>
004014E7 |. 83C4 10 ADD ESP,10
004014EA |. 83EC 08 SUB ESP,8
004014ED |. 68 40504000 PUSH OFFSET 00405040
004014F2 |. 68 9F134000 PUSH 0040139F ; ASCII "%d"
004014F7 |. E8 94170000 CALL <JMP.&msvcrt.scanf>
004014FC |. 83C4 10 ADD ESP,10
004014FF |. 813D 40504000 CMP DWORD PTR DS:[405040],163B37
00401509 |. 75 12 JNE SHORT 0040151D
0040150B |. 83EC 0C SUB ESP,0C
0040150E |. 68 C0134000 PUSH 004013C0 ; ASCII "Bien, tu peux rentrer ce mot de passe sur le site, ca te fera gagner des points :D"
00401513 |. E8 88170000 CALL <JMP.&msvcrt.printf>
00401518 |. 83C4 10 ADD ESP,10
0040151B |. EB 10 JMP SHORT 0040152D
0040151D |> 83EC 0C SUB ESP,0C
00401520 |. 68 20144000 PUSH 00401420 ; ASCII "Recommence, parce que si tu rentres ca sur le site, ca ne te fera pas de point, lol, il est errone ce pass."

On voit très bien le %d suivit d'un cmp ( comparaison ) puis un JNE ( saut si inégal si je me rappel bien ^^ ) qui saute juste au deçu du message : Bien, tu peux rentrer ce mot de passe sur le site, ca te fera gagner des points :D

Pour faire un schema simple, voici ce que l'ont pourrait voir dans sa tête :

Demande du passe --> %d --> CMP ( qui compare ) Si c'est bon, on marque "Bien, tu peux rentrer ce mot de passe sur le site, ca te fera gagner des points :D" puis on saute au dessus de l'autre message Sinon, on saute au desses du bon message, on affiche "Recommence, parce que si tu rentres ca sur le site, ca ne te fera pas de point, lol, il est errone ce pass."

Donc, pour faire la modification que nous avons besoin, nous allons devoir modifier que JNE.
On pourrais changer le JNE par un JE qui donnerai un bon message tout le temps mais si par un coup enorme de chance, quelqu'un réussissait a trouver le bon pass, et bien on lui donnerai un message d'erreur.
Il est donc beaucoup plus prudent d'oublier totalement le saut, en le nopant.

La valeur hexadécimal du Nop est 90 on va donc changer le 75 12 qui correspond au JNE que nous voulons supprimé.
On recherche donc dans notre Éditeur Hexadécimale 75 12 mais pour être sur, on va chercher 75 12 83 EC, car ce sont les valeur qui suivent le saut.

Maintenant, on remplace 75 12 par 90 90 et on sauvegarde dans un nouveau fichier.
Voila ce que sa donne normalement :

272624


Voila, tuto est finit, j'espère que vous aurez apprit des chose qui vous serviront.

Merci a toutes les personne qui m'ont aidé a avancé pour que j'ai le niveau de crée ce tuto !

---- > TheHardButcher



Il est interdit de modifier ce tuto et de le redistribuer sans autorisation.
Si vous désirez le copier, demandez la permission a l'administrateur de ProgSource.fr.cr, mais vous devrez citer le nom de l'auteur ( TheHardButcher ) et ProgSource.fr.cr
 

Dyazz

Haskell &amp;amp;amp;amp;amp;amp; a mp; amp; amp;
V
Dec 28, 2009
618
0
922
Le reverse engineering oO je comprends nawak à l'assembleur moi
 

TheHardButcher

Programmeur C/C++
V
Dec 14, 2009
1,461
58
964
France
Surtout l'envie, c'est le plus important, si sa vous intéresse, vous ne conterez plus les heures que vous passerez a apprendre, et donc vous progresserez =)
 

Imhotep

Vétéran CG3
V
Aug 17, 2010
799
0
441
33
Hinamizawa
Moi j'ai tout comprisn mais j'ai un petit problême : quand je fait : search for ==> all referenced texts strings, sa me marque : "Unable to read memory of debugged process (77740000..77815FFF)." k'ai beau me creser la cervelle, je ne comprend pas :arf: ! Tu pourrait m'aider ? MERCI


Edit : il falait juste appuyer sur F9 !!! :)
 
Last edited:

drave

Membre
Dec 21, 2009
40
0
571
Super tuto j'ai reussi a craker le crackme !! Mais il y a un truck que tu n'explique pas ... c'est comment faire pour modifier avec l'editeur hexa (j'utilise winhex et quand on fait ctrl-f cela ne marche pas il faut faire search puis hexadécimal ) et en plus quand je vais modifier la valeur je mets 9090 il me demande de cocher ( ou pas) hexadecimal mais que je coche ou que je ne coche pas je ne peu pas mettre la valeur 9090 même si sa marche avec autre chose
 

razzash

Membre
Aug 15, 2010
25
0
727
paradiseça crain pour le *** **** de ton cheat plus besoin du mdp payant =/ quelqu'un a même une technique plus efficace et plus simple mais bon on passe dans l'illégal itéetotal
 

TheHardButcher

Programmeur C/C++
V
Dec 14, 2009
1,461
58
964
France
Mais il y a plein de technique différente pour cracker quelques chose, et ce n'est illégal qu'a partir du moment ou l'ont crack quelques chose pour ne pas le payer ( pas comme mon logiciels que j'ai crée pour ^^ )

Pour paradise, moi je ne craint pas trop, on en a parler, et ces logiciels sont plutôt bien protégé d'une attaque standard !
 

Kusano

We Are Not Your Kind
Modérateur
Marchand
V
May 16, 2010
6,509
90
964
NAMEK WALLAH
Discord
kusano
très bon tuto bravo ! j'attend avec impatience d'autre crack de ta part =)
 

Etawyn

Membre
Jun 26, 2012
18
0
306
J'ai exacte'ment fait pareil que toi , j'obtient bien la phrase comme quoi j'ai réussi , mais comment connaître LE mot de passe , pour valider sur le site après ?
 
Last edited:
Status
Not open for further replies.