Adaptation des cours de "Deamon" à Ollydbg par "ga"

 

Cours n°10

Cracker le crack-me et trouver le serial



Objectif : 

Faire un peu tout et n'importe quoi du moment qu'on arrive à obtenir le bon message et le bon serial. ;-)


Niveau : 

Je n'en sais rien ! Ça dépend de vous. ;-) Mais plus compliqué que les précédents.


Ce qu'il vous faut : 

- 
Ollydbg

- Protection ID


- Le crack-me (8 Ko)




Aller on y va !

     Je ne sais pas trop par quoi commencer mais enfin bon, on y va quand même ! Alors déjà après l'avoir téléchargé, curieux comme vous êtes, vous avez dû lancer ce petit crackme. Et vous avez dû voir qu'il n'y a pas de case pour le nom ! Donc soit le serial est unique, soit il est calculé avec par exemple le numéro du disque dur ou soit avec l'âge de votre belle-mère… À première vue ça m'a l'air d'être un serial unique.

    Comme je vous ai dit dans le cours précédent, nous allons avant tout le scanner à l'aide de "Protection ID" :

 


    Rien à signaler… Ni une, ni deux, on charge ce crack-me dans Ollydbg. On recherche dans les "Names" (Ctrl+N) si une API pourrait nous intéresser. On voit "
GetWindowTextA", si on décortique cette API il y a "Get" "Window" et "Texta" qui se traduit par " obtenir le texte de la fenêtre ", vu le comportement de notre Crack-me cette API m'a l'air intéressante ! Une petite recherche dans Google : "GetWindowTextA fonction" et on peut voir que "msdn" nous dit :

 

    C'est bien ce qu'on pensait ! Clique droit sur la ligne de notre API / "Find references" / clique droit sur la fenêtre qui vient d'apparaitre / "Breackpoint on all commands", je vous rappelle que ceci met un Bp sur toutes les lignes où le programme fait référence à cette API.

    Un coup de "F9" pour lancer le programme, on rentre un code bidon : 147258369 et on fait "Check". Ollydbg apparait arrêté à l'adresse 401418 sur notre API "GetWindowTextA". Actuellement notre programme a juste pris notre serial, la vérification se fait donc après ! 

    On observe le code juste en dessous et on voit 4 sauts "JNE SHORT CrackMe11.401465" qui se suivent ! On clique sur la ligne du saut par exemple à l'adresse 401429 et on voit dans la fenêtre  "infos complémentaires"  :  "Dest=CrackMe11.00401465". Clique droit sur cette phrase / "Follow" (Entrer), on tombe sur notre message d'erreur, juste en dessus notre message de réussite ! Vous avez compris il faut nopper ces 4  sauts pour pouvoir avoir tout le temps le message de réussite. Le crack est fini n'en parlons plus !... trop facile.

 

    Essayons maintenant de trouver le bon serial !

    Revenons à notre adresse 401418, comme je le disais il y a 1 minute, notre programme a simplement prit notre sérial mais que va-t-il en faire, quelles sont les raisons pour lesquelles les 4 sauts sautent-ils ? Analysons le code avant chaque saut qui nous mène vers le message d'erreur, pour ça nous allons parcourir le code pas à pas avec "F8". Un petit coup de "F8" et on peut voir dans la fenêtre des "infos complémentaires" :

    On peut voir que l'Api GetWindowTextA  retourne la valeur "9", stockée à l'adresse 40317D, dans EAX. Il semblerait que ce nombre soit le nombre de caractères de notre serial bidon. Pour s'en persuader on regarde les paramètres de cette Api et Msdn nous dit :

    C'est donc bien ça … "Bien vu l'aveugle !" :-D

    Un coup de "F8", nous sommes à l'adresse 401422, sur cette ligne nous voyons "CMP DWORD PTR DS:[CrackMe11.40317D],3". Cette ligne compare "3" au contenu de l'adresse 40317D soit "9", suivi d'un saut "JNE" signifiant "saut si non égal".  On peut donc en déduire par ces deux lignes que notre serial doit impérativement comporter 3 caractères ! On efface les BPs que nous avons mis tout à l'heure puis on en pose un nouveau sur l'adresse 401422 à l'aide de "F2".

   On fait "F9" pour continuer le programme, et on retape un serial de 3 caractères "147" / "Check", Ollydbg est arrêté sur notre Bp, on l'efface ("F2"). 1 fois "F8" nous sommes sur notre saut, la flèche est grise c'est bon il ne va donc pas sauter. Nickel !

    Après l'analyse de chaque ligne qui suit grâce au cours nommé "L'assembleur" et "l'outil de conversion de HEXADECIMAL vers ASCII", nous pouvons en conclure ceci :

      Le vrai serial est donc "MOI" !

    Et voilà encore un crack-me de cracké … et avec la manière ! ;-)

__________   ___   __________

<<< Retour au cours précédent
[ Cracker un prog compressé  ]

 

Passer au cours suivant >>>
[ Le Crack-me qui se cracke tout seul ]

 

 

Juillet 2013