CourS de CrackS

 

Crack du logiciel CD Softw@re

Bon, il faut savoir que EWay sort un truc rigolo, ca s'appelle CD Software, c'est une collection de logiciels complets (assez pourris généralement) bridés à une minute d'utilisation ou non utilisable sans une clé, et pour obtenir cette clé, il vous faut aller sur ... je vous laisse deviner ... un 3617 KiNenVeut, pour les jeunes kinenveulent ... ca vous revient à environ 120 balles pour un logiciel.

Pô Kewl de ne pas pouvoir tester A FOND (cAd temps illimité) un logiciel ... on va arranger ça :

On lance l'interface COMPLETEMENT POURRAVE de cd software, et on arrive à un menu dans lequel on choisit le logiciel qu'on veut, on clique sur le bouton licence et on obtient un écran de ce style :

On rentre ses initiales, pis ca nous donne un code, après on va sur 3617 truc et on a la clé de débridage... Mais que se passe t'il si on ne rentre pas la clé, on a un message d'erreur type :

Si on rentre un numéro bidon, nous avons :

Bon, avec ca on peut faire kelkes choz d'intéressant ...

Remarque : les initiales rentrées sont cryptées et sont enregistrées dans system.ini ... nous verront ca plus tard ...

Pour commencer, on lance Wdasm 8.xx, et on lance le desassemblage de Viewcd.exe qui se trouve sur le cd ... la suite est on ne peut plus simple, il suffit de faire une recherche sur la phrase "Désolé, ce n'est pas la bonne clef ! ..." et on tombe sur ce passage :

Bein vi, c'est tout simple, le texte est en clair, en plus on a le segment:offset des chaines, il suffit alors de faire une recherche sur l'offset qui nous interesse, ici 30b2 et 30e0, Wdasm nous amène à cette portion de code :

Marrant non ? après le CALL il compare une valeur retournée par la fonction avec zéro, s'il n'est pas égal il va en 31ab, sinon il place 30b2 (l'adresse de la chaine indiquant que l'on n'a pas rentré de n° de série) en di ( note : ES:DI et DS:SI sont des valeurs couramment utilisées pour la manipulation de chaines de caractères, like MOSVB ... avec CX comme compteur), mais alors que se passe-t'il en 31ab ??? et bein on y va, et après une série de CALL successifs, on a ceçi :

Idem, nous avons un CALL, puis un test de FLAG si celui est égal à 1 si oui on va en 3214, sinon on place l'adresse 30e0 en DI (étrange, c'est l'adresse de la chaine ce numéro est érroné ...;) un CALL et go en 3254 (note : ce 3254 marque aussi la fin de l'affichage "vous n'avez pas rentré de numéro de série), en fait le dernier CALL teste la validité du numéro de série qui aura été cripté par les CALLs précédents, la solution vous parait simple ? elle l'est ...

Lançons notre Soft-Ice favori, et tout de suite placons un BPX CS:3196 et BPX CS:31FE, lançons le programme et essayons d'enregistrer un logiciel quelconque (attention quelques logiciels ne marchent pas comme ca, nous verrons cela après), sans marquer la clé licence, boum, nous tombons sur notre premier breakpoint, nous faisons un dump de la mémoire (pour ceux qui n'aurait pas activer le CODE ON dans la config Soft-Ice) = D CS:EIP, nous devrions voir dans la zone data les données hexa du code, notez une vingtaine d'octets sur papier, modifions le code JNE en JMP (de ce fait vous n'avez plus besoin de rentrez un numéro de licence) par la commande A, attention, plaçez une paire de NOP après pour ne pas briser l'intégrité du logiciel, et regardez le dumpage mémoire, notez la séquence qui à changé, car la séquence JMP n'a pas la même taille que le JNE, continuez le programme et vous retomberez sur votre deuxième Breakpoint, même combat : dumpez la mémoire, notez une vingtaine d'octets sur papier et changer le JE en JMP, regardez la séquence qui à changer et lancer le programme ... Et voilà, votre programme est craqué ... reste à faire la modif en dur sur le disque, là pas de secret : recopier l'executable sur votre dur et employez votre éditeur hexadécimal favori pour remplacer les octets précédemments inscrits, puis, regravez le tout sur un zoli cdrom pour les plus chanceux ...

That's All Folks !!!

PS : Deux points sur lequel je voudrais revenir :

- Le programme, une fois enregistré le numéro de série crypté dans le system.ini, à la suite de vos initiales cryptées .. important pour ce qui suit ...

- Certains programmes ne se débrident pas à partir du menu général, ils intègrent en leur sein le code de protection précédemment cité, et vérifient à chaque lancement que dans le system.ini le code est bien inscrit, et c'est là toute la débilité des programmeurs = le code est le veritable code enregistré et non le code que vous avez rentré ... ce qui veut dire que vous le craquez une fois en mémoire, il inscrit le véritable code crypté que vous auriez du rentré dans le system.ini ... Nul, archi Nul, la protection la plus débile qui ne m'a jamais été donné de voir, il aurait du inscrire le code rentré et non le véritable code, et à chaque lancement tester voir si le code correspond bien !!! je rigole !!! ;)

Si vous avez des question :

Cyberbobjr@yahoo.com