Teleport Pro 1.29.1820
:0040BE79 85C0
test eax, eax
:0040BE7B 59 pop ecx
:0040BE7C 7413 je
0040BE91
:0040BE7E 53 push ebx
:0040BE7F 53 push ebx
* Possible StringData Ref from Data Obj ->"This program's
name has been changed; "
En regardant au
dessus du message on peut voir un "TEST" suivi d’un saut, ici "JE". Il faut donc
remplacer ce JE en JMP soit 74 par EB.
Rappel : Pour trouver plus facilement l’emplacement de
ce 74 dans l’éditeur hexadécimal, double-cliquez dans WinDasm sur la ligne du
« JE » et regardez en bas de l’écran dans la barre d’état : "Line:23454 Pg 273
of 2470 Code Data @ :0040BE7C @Offset 0000BE7Ch in
File:pro.exe"
L’offset représente l’emplacement du "JE" et donc retenez le numéro qui est
entre les "0" et le "h" qui signifie que c’est en hexadécimal. Donc ici :
BE7C.
Allez dans
votre éditeur hexadécimal, ouvrez le fichier et pour "HexDecCharEditor" faîtes
"Edit" à "Go to…" ou bien CTRL + T. Tapez dans la case hexadécimal "hex"
BE7C et faîtes "Ok". Vous arriverez directement sur notre
74 que cous changerez en EB.
Une fois ce changement effectué, il faut voir si ça marche.
Donc on lance le fichier modifié en lui mettant un autre nom que "pro.exe". Et
là il nous met un nouveau message nous disant que le fichier a été altéré,
peut-être par un virus… Ben forcément qu’il a été altéré, on vient de le
modifier. Donc on recherche ce message dans WinDasm.
Vous pouvez dans ce dernier, pour chercher une phrase, faire
"Search" puis "Find" et taper un morceau de la phrase comme par exemple "been altered" ou
"by a virus". Faîtes attention qu’il n’y en ait pas plusieurs. Et évitez de
prendre les fins des phrases car elles sont souvent coupées.
:0040BECD 741C
je 0040BEEB
:0040BECF A144D74700 mov eax, dword ptr [0047D744]
:0040BED4 3B30 cmp esi, dword ptr [eax]
:0040BED6 7413 je 0040BEEB
:0040BED8 53 push ebx
:0040BED9 53 push ebx
* Possible StringData Ref from Data Obj ->"This program
has been altered, "
On peut voir deux "JE" avant le
message se reportant au même endroit. Vous pouvez donc prendre celui que vous
voulez et le remplacez par un JMP (EB en hexadécimal pour ceux qui ne le
sauraient pas encore).
Donc là on est enfin prêt.
Faîtes maintenant "Help" puis "Register…". On voit que le logiciel est limité à 40 utilisations. Bon alors
on fait comme d’habitude : nom, société et le code (bidon bien sûr). On clique
sur "Ok" et là …[roulements de tambour]… un message d’erreur qui dit que le
code n’est pas bon. Ben oui, vous voulez que ça soit quoi d’autre ?
On fait une petite recherche dans WinDasm. Si vous avez du
mal à trouver dans les Data String References (dans le haut de la liste) faîtes
donc une recherche de texte (voir plus haut) avec "registration number" par
exemple. Faîtes attention à ne pas faire de fautes en recopiant. Bon et donc on
aperçoit notre beau message :
* Referenced by a (U)nconditional or (C)onditional
Jump at Address:
|:00427CBE(C)
|
:00427CF1 8945F0 mov dword ptr [ebp-10], eax
* Possible Reference to String Resource ID=07033: "We're
sorry! The registration number you entered appears to"
Ce message est appelé par un saut conditionnel en 00427CBE, donc on se dirige vers cette adresse et on voit ceci :
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427C78(C)
|
:00427CB0 57 push edi
:00427CB1 E80F090000 call 004285C5
:00427CB6 85C0 test eax, eax
:00427CB8 A1ECF44700 mov eax, dword ptr [0047F4EC]
:00427CBD 59 pop ecx
:00427CBE 7531
jne 00427CF1
:00427CC0 8945F0 mov dword ptr [ebp-10], eax
* Possible Reference to String Resource ID=07032: "You
haven't entered a valid username. Your username must be"
On tombe sur un "JNE" et on voit qu’il fait un test avant, donc on aurait tendance à dire qu’il faudrait le modifier (cette manie de modifier tous les sauts maintenant...). Mais regardez en dessous : "You haven’t entered a valid name". Donc si on modifie ce saut on tombera sur ce message. On regarde alors encore au dessus du saut et on qu’il est appelé par un autre saut conditionnel. On y va :
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427C33(C)
|
:00427C6F 8BBFD5000000 mov edi, dword ptr [edi+000000D5]
:00427C75 395FF8 cmp dword ptr
[edi-08], ebx
:00427C78
7536
jne 00427CB0
:00427C7A A1ECF44700 mov eax, dword ptr [0047F4EC]
:00427C7F 8945F0 mov dword ptr [ebp-10], eax
* Possible Reference to String Resource ID=07031: "You
must enter your username in the Name field, exactly as y"
Là on se retrouve dans le même cas. Si on modifie ce saut on
tombera sur le message d’erreur qui se trouve en dessous du "JNE".
Ce saut est appelé par un autre saut. On n’en finit plus.
On arrive donc en 00427C33 :
:00427C2F 3945E8
cmp dword ptr [ebp-18], eax
:00427C32 59 pop ecx
:00427C33 753A
jne 00427C6F
:00427C35 A1ECF44700 mov eax, dword ptr [0047F4EC]
:00427C3A 8945F0 mov dword ptr [ebp-10], eax
* Possible Reference to String Resource ID=07026: "Thank
you! Your copy of Teleport Pro is now registered. Al"
Et là que voit-on ? Un beau message nous disant qu’on est
enregistré. Youpi, youpi ! On va donc nopper ce saut en remplaçant 753A par 9090
pour qu’il tombe toujours sur ce message. On modifie et bien sûr on essaye. Et
là ça marche enfin !
Relancez le programme et regardez dans "Help" puis "About". Vous
n’êtes plus enregistré ! Il suffit juste de retaper le code à chaque fois que
vous lancez le logiciel. Mais bon… On va plutôt s’intéresser à la fenêtre
d’About où l’on peut voir "This copy of Teleport Pro is
UNREGISTERED". On va donc chercher ce dernier mot dans WinDasm. On tombe
ici :
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00416D9E(C)
|
:00416DD0 3898CD040000 cmp byte ptr [eax+000004CD], bl
:00416DD6 7430
je 00416E08
:00416DD8 894DF0 mov dword ptr [ebp-10], ecx
* Possible Reference to String Resource ID=07093: "This
copy of Teleport Pro is UNREGISTERED."
Et un peu plus bas :
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00416DD6(C)
|
:00416E08 8B900D050000 mov edx, dword ptr [eax+0000050D]
:00416E0E 395AF8 cmp dword ptr [edx-08], ebx
:00416E11 7537 jne 00416E4A
:00416E13 8BB809050000 mov edi, dword ptr [eax+00000509]
:00416E19 894DF0 mov dword ptr [ebp-10], ecx
* Possible Reference to String Resource ID=07102: "Licensed
to %s"
Donc on va modifier le "JE" (en 00416DD6) en JMP (EB) pour arriver tout le temps
sur "Licensed to…". Mais si on regarde au dessus
du message de "UNREGISTERED". Il y a :
:00416D9E 7430 je 00416DD0
:00416DA0 894DF0 mov dword ptr [ebp-10], ecx
* Possible Reference to String Resource ID=07076: "The
free evaluation period for Teleport Pro has expired."
Ça c’est le message qu’il nous mettra passé les 40 utilisations. Donc on met un
JMP à la place du JE,
qui arrivera sur le JMP du 00416DD6 qui sautera lui à son tour vers "Licensed…".
Et voilà !
Passer au cours suivant >>> [ Cracker un prog compressé ] |