Les principales étapes pour cracker un prog:
Étape 1 :
Tout d'abord lancer le prog a cracker et voir de quel types de Protection il y a.
1. limitation à X de jours ou à X utilisations.
(Il est entier)
2. version bridée (incomplète à l'utilisation mais il quand
même entier).
3. les versions "démo" (tout n'est pas dedans).
IL faut récupérer le maximum d'information sur le prog (titre des fenêtres de registration, invalide code, bouton inaccessible, les nags screen..etc.), tout ce qui n'est plus en version enregistrer en fait. Pour être sur consultez la doc. du prog il doivent en principe parler des fonctions inaccessible qui deviennent accessibles a l'enregistrement du prog.
Après il y a 2 solutions : soit vous vous servez de
softice, soit de
w32dasm. Si vous débutez, servez vous plutôt de w32dasm c'est + facile que softice et moins prise de
tête. Mais sachez que l'idéal c'est quand même softice une fois qu'on le maîtrise. Je
ne vais pas vous décrire la procédure exacte pour cracker un programme car c'est
différent à chaque fois. Mais je vais expliquer les trucs qui se retrouvent a
peu près dans chaque prog.
Ah oui chaque fois que vous chercher des
informations sur le prog n'oubliez jamais d'essayer de vous enregistrer en
mettant n'importe quel nom et n'importe quel serial et d'appuyer sur register
car la fenêtre qui arrive quand vous faites ça, généralement : "le numéro que
vous avec saisi est incorrect" sert beaucoup dans w32dasm vous verrez + loin
pourquoi. Notez ce qu'il dit et gardez le bien quelque part.
Étape 2 : désassemblage
Il faut toujours avant de commencer a agir sur le prog faire une copie de l'EXE. Sélectionnez l'EXE appuyer sur control et c puis control et v et voila une copie à été faite. Faites en au moins 3 : une pour l'ouvrir dans w32dasm, une normale pour vérifier, et une pour l'éditer avec l'éditeur hexadécimal.
Ensuite désassemblez le prog dans w32dasm. Lancez w32dasm aller dans le menu disassembler--->Open file to disassemble choisissez l'exe du prog a desassembler.
Ensuite le désassemblage commence, ça prend un peu de temps, des fois ça prends 15min pour un prog !!! mais bon ça arrive pas souvent.
Une fois fini vous voyez ça, tout en haut le titre de l'EXE, et puis en dessous cela varie selon les progs (la le titre c'est cpuidle.exe)
Etape 3 : localisation
Ensuite appuyer sur ce bouton
c'est
les String data références, c'est la ou il y a les trucs
les + importants.
Vous vous souvenez de la phrase que je vous avais dit de noter ?
(n'oubliez
pas la phrase change selon le prog) "le numéro que vous avec saisi est
incorrect"
ben cherchez la dans la liste qui
apparaît quand vous
cliquer sur ce bouton .
Une fois que vous voyez la phrase magique : "le
numéro que vous avec saisi est incorrect"
(sur limage de dessous c'est "This
shareware version of cpuidle")
Double cliquez dessus et hop vous
atterrissez
(dans la fenêtre de codes ) a l'endroit en question.
Ca commence toujours par *Possible Stringdata ref from Code Obj puis la phrase. Apres cela varie selon le prog mais Sacher que très souvent il suffit juste de changer un jz en je, généralement quelques lignes au dessus de "le numéro que vous avec saisi est incorrect" et puis c'est bon. Ca suffit déjà pour plein de prog.
Je vous mets en dessous tout les types de sauts rencontrés, avec ce qu'il font et leur correspondance en hexadécimal (j'explique + bas).
Assembleur : Hexadécimal :
Alors une fois que vous avez trouve l'endroit a
patcher dans la fenêtre de code par exemple un jne en je il vous faut connaître
l'adresse car on ne peut pas directement changer le truc qu'on veut dans la
fenêtre du prog désassemblé (c'est très con d'ailleurs). Pour pouvoir changer
donc il vous faut un éditeur hexadécimal mais le problème c'est que c' est pas
le même langage entre le prog désassemblé et le prog dans l'éditeur hexa, c'est
pour ça que dans w32dasm il y a un truc très bien qui vous indique l'adresse a
laquelle se trouve votre ligne jaune en assembleur et en hexadécimal. Etape 4: adresse hexa par exemple pour ici a cette adresse 0043AB84 7304 jnb 0043AB8A l'adresse assembleur
c'est 0043AB8A et l'adresse en
hexadécimal c'est 00039f84h (le petit h indique que l'adresse est en hexadécimal
donc il ne faut en tenir compte). Etape 5:
édition hexadécimal Apres avoir noter l'adresse en
hexadécimal donc
00039f84 ouvrez ultraedit par exemple, faites fichier=> ouvrir
=>sélectionnez votre .EXE, et ouvrez le. Ensuite vous devriez voir a peu prés
ça: Ensuite allez dans le menu recherche-->puis aller
a la ligne/page
JNE
Saute si pas
égal
75
JE
Saute si
Egal
74
JMP
Saute
EB
JA
Saute si au
dessus
0F87
JNA
Saute si pas au
dessus
0F86
JAE
Saute si au
dessus ou égal
0F83
JNAE
Saute si pas au
dessus ou égal
0F82
JB
Saute si en
dessous
0F82
JNB
Saute si pas en
dessous
0F83
JBE
Saute si en
dessous ou égal
0F86
JNBE
Saute si pas en
dessous ou égal
0F87
JG
Saute si +
grand
0F8F
JNG
Saute si pas +
grand
0F8E
JGE
Saute si + grand
ou égal
0F8D
JNGE
Saute si pas plus
grand ou égal
0F8C
JL
Saute si moins
grand
0F8C
JLE
Saute si moins
grand ou égal
0F8D
JNLE
Saute si pas
moins grand ou égal
0F8E
NOP
Ne fais
rien
908F
ensuite vous verrez ceci :
Donc comme c'est écrit sur le dessin il vous faut taper 0x ,et après l'adresse hexa donc dans notre exemple ça donne 0x00039f84 ; et voila vous vous trouvez a l'endroit que vous vouliez changer tout a l'heure mais en hexadécimal. Bon chose importante aussi vous vous souvenez + haut l'adresse ou vouliez changer votre saut mais en assembleur?
0043AB84 7304 jnb 0043AB8A
0043AB8A correspond a l'adresse de la ligne dans la fenêtre de code dans w32dasm
7304 correspond a jnb en hexadécimal c'est a dire que dans w32dasm il vous donne déjà la correspondance de jnb en hexadécimal c'est ça qui est utile et qu'il faut retenir pour pouvoir le changer dans l'éditeur hexadécimal. C'est la qu'intervient le tableau des sauts (Voir + haut). Ici donc jnb correspond a 7304 qu'il faudra changer par 7404 ce qui changera le jnb en je.
Ensuite faites enregistrer et voila sans en avoir l'air vous venez de cracker la limite de 30 jours de cpuidle 5.6 hé hé facile non ! now il n'expirera + au bout de 30 jours.