Débuter en reverse engeneering.
|
08-09-2011, 00h05
(Modification du message : 08-12-2012, 17h29 par ark.)
Message : #1
|
|
ark
![]() Psyckomodo! ![]() ![]() ![]() ![]() ![]() Messages : 1,033 Sujets : 48 Points: 317 Inscription : Sep 2011 |
Débuter en reverse engeneering.
Débuter en reverse engeneering.
On peut trouver sur le net d'excellent tutos de cracking, alors je vais faire en sorte que celui ci soit facile à aborder, il s'adresse aux débutants qui veulent se lancer dans le cracking. C'est mon premier tuto, alors soyez indulgents, j'accepte tout de même les critiques. ![]() 1) Qu'est ce que le cracking ? En informatique le cracking consiste a modifier des octets dans un programme pour en détourner certaines fonctionnalités, comme par exemple créer un patch no-cd... 2) Les outils. Un débugger : OllyDBG (dispo ici) Un editeur HexaDécimal : J'utilise HxD (ici) mais vous pouvez utiliser n'importe quel autre éditeur. Le CrackMe (bah oui, ça peut servir...) 3) On se lance ! Pour commencer, on ouvre OllyDBG et on ouvre le crackme ![]() Dans le cadre bleu se trouve le code assembleur du CrackMe, c'est lui qui va nous permettre de comprendre l'algorithme. Dans ce cadre se trouvent les registres, que l'ont va étudier pour retrouver un sérial par exemple. Ici, c'est la pile. les infos qui se retrouvent dans les registres on peut y trouver des mots de passe parfois ![]() Bon, allez, a l'attaque ! On commence par lancer le crackme, pour voir de quoi il s'agit. Une magnifique console s'ouvre, et nous demande un numéro de série. Malheureusement, vous ne le connaissez pas... Et quand vous tapez n'importe quoi, il vous dit "Et... Non !" Pas très sympa tout ça, mais rassurez vous ça va vite changer ! On va le maltraiter un peu pour cet affront ! ![]() On retourne sur ollydbg, on fait click droit -> "Search for" -> "All referenced text string". Et hop on retrouve nos messages d'erreur. On va commencer par faire valider notre sérial bidon. Pour ça double clic sur le message "Et... non !" On se retrouve sur ce bout de code : Code ASM :
Si vous avez déjà fait un peu de C, vous pouvez facilement comprendre le code a l'aide des printf et scanf... Bon, mais ce qui nous intéresse ici c'est de comprendre pourquoi et comment le programme arrive au message "Et... Non!". On peut voir juste au dessus du message "Bravo ! ![]() Code ASM :
CMP EAX,DWORD PTR SS:[ESP+1C] Içi, la premiere ligne indique que le programme compare deux valeurs. Le CMP renvoi 1 si les deux valeurs sont égales, et 0 sinon. Le JNZ ou JNE (jump if not equal) va donc sauter jusqu'à l'adresse 00401366 si le test est faux. Et a la ligne 00401366 on trouve le message "Et... non!" ! C'est donc ce saut qui nous renvoi ce message si on se trompe ! On va donc faire en sorte que le programme nous laisse passer si notre sérial est faux. Pour celà, il suffit de double cliquez sur le JNZ, et d'écrire JE a la place, ce qui aura pour but d'inverser le saut. Le programme va donc valider tous les faux sérials ! Mais, si on tombe sur le vrai, il va nous le refuser... Pour y remédier, on va carrément supprimer le saut ! Comment faire ? C'est tout simple, on va mettre a la place du saut une commande qui ne fait strictement rien. Cet opération, c'est le NOP. Donc, on double clic sur notre JE, et on écrit NOP a la place de toute la ligne. (bah oui, plus la peine de garder l'adresse puisqu'on ira plus !) Vous avez réussi a bypasser votre premier password ! ![]() Le problème maintenant est que les changement d'OllyDBG ne sont que temporaires... Et si vous désirez garder votre crack sans avoir a le refaire a chaque fois, ben va falloir utiliser l'éditeur hexadécimal. Mais, ne fermez pas encore OllyDBG ! Bon, alors vous avez peut être déjà remarquer qu'il y a des valeurs hexadécimales écrites entre les adresses et les commandes, par exemple : Code ASM :
00401356 |. 75 0E JNZ SHORT CrackMeT.00401366 Ces valeurs hexadécimales sont tout simplement les valeurs de la commande. A retenir : Code : ______________________ Ces quatres commandes vous servirons très souvent pour modifier différentes choses, pour détourner des protections... On a déjà vu le JE, JNZ et NOP, je vous explique donc rapidement le JMP : Il sert a sauter directement, sans condition a l'adresse demandée. Passons maintenant a l'editeur hexa. Il n'y a pour ce programme qu'une seule ligne a modifier. Vous avez ouvert l'editeur ? Bien, alors faites Ctrl+F et cherchez le message "Bravo"(celui situé juste après le saut) ensuite, refaites Ctrl+F, et recherchez en arrière la valeur hexadécimal 75 (le JNZ). ça y est, vous l'avez ? Fermez donc OllyDBG, et remplacez ensuite cette valeur par 90 (le NOP) dans l'éditeur. Puis, sauvegardez le programme (sous un autre nom pour garder l'original). Voilà, vous avez enfin un crack permanent ! Pour ceux qui veulent aller plus loin, je suis entrain de rédigé un second tuto, dans lequel on ne va pas bypasser le mot de passe, mais le retrouver et programmer un keygen. ![]() Si ce tuto vous a plus, si vous avez des questions, ou si vous trouvez que j'explique mal, faites le moi savoir ! ![]() |
|
« Sujet précédent | Sujet suivant »
|
Messages dans ce sujet |
Débuter en reverse engeneering. - par Ark - 08-09-2011, 00h05
RE: Débuter en reverse engeneering. - par WiiiZzzz - 01-11-2012, 13h54
RE: Débuter en reverse engeneering. - par Ark - 08-09-2013, 23h08
RE: Débuter en reverse engeneering. - par Wabouz - 09-09-2013, 16h45
RE: Débuter en reverse engeneering. - par Ark - 09-09-2013, 16h56
RE: Débuter en reverse engeneering. - par Wabouz - 09-09-2013, 20h44
RE: Débuter en reverse engeneering. - par ThomasBr - 22-03-2018, 03h50
Débuter en reverse engeneering. - par CyberSee - 08-09-2011, 00h15
Débuter en reverse engeneering. - par fr0g - 08-09-2011, 01h03
Débuter en reverse engeneering. - par Ark - 08-09-2011, 10h02
Débuter en reverse engeneering. - par supersnail - 06-11-2011, 19h04
Débuter en reverse engeneering. - par oxoo - 20-11-2011, 23h09
Débuter en reverse engeneering. - par Ark - 21-11-2011, 22h31
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
Débuter en analyse de malwares | supersnail | 6 | 3,745 |
07-11-2013, 23h26 Dernier message: supersnail |
|
Continuer en reverse engeneering | ark | 4 | 2,867 |
16-09-2013, 09h05 Dernier message: Ark |
|
Débuter en reverse engineering avec 0$ | 0x41 | 9 | 4,679 |
14-09-2012, 19h55 Dernier message: LR-6 |
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)