Leçon N°6 :Cracker un CD-Check
Présenté par: geoffrx1



-Outils nécessaires :

   - Un désassembleur/débuggeur comme WinDasm v8.9.

   - Un éditeur hexadécimal HexDecCharEditor.

   - Le programme CD-Check.

-Le but :

Le but est de détourner la vérification du CD.

-Allez Go :

Alors voyons voir ce que nous dit ce cd-check, on l'ouvre et la, deux grosses cases avec "chek for CD" et "exit",




on clique sur "check for CD" et on aura:



Hum... bon on va le désassembler et dans les string data référence on cherche "Try again" :



Double clique et on tombe ici:



On voit donc que le message d'erreur est appellé par un saut conditionnel à l'adresse 00401352
et que au dessus du message d'erreur à l'adresse 0040138C, il y a un JE qui va directement au message de réussite donc, la suite est logique: On nop le le saut conditionnel qui appelle le message d'erreur et on tranforme le "JE" du message de réussite, soit en "JNE" soit en jump.

-Le Crack :

On prend l'éditeur hexadecimal (moi j'utilise HexDecChar Editor) on cherche l'offest* "1352",qui est l'adresse du saut conditionnel qui appelle le message d'erreur et on remplace le 743E par 9090, puis on va à l'offset "138C" qui est l'addresse du "JE" qui saute au message de réussite la il faut un peu de concentration:
primo : le programme comparre "Bl" et "byte ptr [ebp-0D]", si ils ne sont pas égaux il continue vers la boite de dialogue "try again".
l'astuce c'est d'affecter à "byte ptr [ebp-0D]" le contenu du registre "bl" , la forcément il sont égaux
l'istruction qui permet ça est: mov byte ptr [ebp-0D], bl



On remplacera alors dans la ligne :00401380 0F9445F3 sete byte ptr [ebp-0D]
le "sete byte ptr [ebp-0D]" par "mov byte ptr [ebp-0D], bl" et un "nop"
car "sete byte ptr [ebp-0D]" c'est 4 chars "0F 94 45 F3"
tandis que "mov byte ptr [ebp-0D], bl" c'est que trois chars "88 5D F3" pourque le compte soit bon on ajoute le "90" du "nop".





On quitte l'éditeur héxa et on sauvegarde, la on essaye maintenant on aura :



* L'offset: c'est l'adresse exacte d'une donnée dans l'assembleur. cliquez sur le "JE" du message de réussite, de manière à avoir la bande verte au dessus dans l'assembleur. maintenent regarder tout en bas du programme et vous verrez une ligne où il est marqué:

Line:735 Pg 15 and 16 of 21 Code Data @:0010138C @ Offset 0000138Ch in file:crackme1.exe



Regardez, il est marqué @ Offset 0000138Ch, et bien nous on utilise uniquement que les nombres compris entre les "0" et le "h" ce qui nous donne "138C". Pour aller à l'Offset, tout dépend maintenant de l'éditeur héxadécimal, moi j'utilise HexDecChartEditor et je dois faire Ctrl +T mais pour les autres j'en sais rien, mais le principal, c'est que vous ayez compris comment fonctione l'Offset.


<---Cours précédent  -----  Cours suivant--->





* Kurzy * Akcie * Práce * Zájezdy * Zájezdy * Meteobox * Auto *