Crack de XARA3D 2 Par MOVAX1St [DSK] Cours de niveaux A+
Matos nécéssaires : (utilisés)
Wdasm85 ou 89
Soft-ice 3.20
Editeur Hexa
Nous voici donc sur un autre travail, un peu plus compliqué que le dernier , du moins il semble....
Voyons ca de plus près : ce logiciel sert à générer des images gif, jpg animés. (sympas d'ailleurs)
En version SHAREWARE, il nous permets de rien foutre ! ! ! ils se foutent de nous !
En effet, des que le logiciel est lancés, il vous annonce qu'il est la que pour 15 jours, sinon, fo vous enregistrer.
De plus, il nous colle un fond avec xara demo ecrit partout , donc, inutilisable !
La solution pourrait d'etre de virer le time-limit, puis de virer le fond xara demo..
Mais bon, y'a au lancement un bouton UNLOCK, ce qui veut dire qu'on peut tout dévérouiller. ;)))).
(Personnelement, j'utilise une technique autre que celle que je vais vous présenter pour enregistrer ce genre de log,
mais, pour un bon debut, j'ai préféré vous exposer cette solution.)
Dessasemblons le logiciel, avec WDASM. 2 minutes et c'est fait. Relancons le X3D.exe.
Cliquons sur purchase, il nous demande un code d'enregistrement, entrons n'importe quoi. UNLOCK.
La, le log nous réponds : YOU ENTERED AN INVALID UNLOCK CODE, THE.....
Notons ca... retournons sous WDASM. Recherchons (Search puis Find text) YOU ENTERED, le log nous envoie a ca :
* Possible Reference to String Resource ID=03005: "You entered an invalid unlock code.
The program has not been"
Ha ! un pas en avant.... on sait deja que ca apparaît en clair dans le texte.
Nous savons egalement que notre seance de test est deja passé car il nous dis que c'est invalide..
Nous devons donc remonter le code source.
Remontons doucement, en regardant ce qui se fait.. JE OU JNE 0040BE3D...
Cette instruction apparaît bien souvent..
0040BD0F, a cet adresse on remarque une serie d'instruction qui laisse penser que le log fait un calcul à cet endroit.
De plus a la fin de calcul, nous avons droit au JE 0040BE3D, qui nous dis au revoir....
Remontons au plus haut possible, juste avant l'instruction jne 0040BE3D. Posons un bpx sur le CALL
en 40BC34. (Bpx 40BC34 sous SOFT-ICE)
Bingo, le log s'arrete... L'astuce consiste maintenant a lui faire croire qu'on est enregistré..
Le passage sur le JNE 40BE3D nous renvoie apres cette serie de calcul si le sot se fait..
Donc, nous pourrions tres bien modifier le sot par 2 NOP (a+entree sous softice, puis nop, nop)
Mais cela n'a que tres peu d'interet.. en effet, il nous faudrait mettre des nop sur tous les JE ou JNE
Se referencant a cet adresse.. le plus simple consiste a repérer le dernier de ces sots :
0040BD80 0F85B7000000 jne 0040BE3D
Puis, a placer un sot sur le call d'en dessous.
0040BD86 E8A4360700 call 0047F42F
plus loin nous voyons :
* Possible StringData Ref from Data Obj ->"Key"
Et c'est a partir de la qu'il nous la sort cette key, clé de validation ;)))
Donc, on prends le premier des sauts en : :0040BC4D 0F85EA010000 jne 0040BE3D
Qu'on remplace par un JMP a l'adresse du call ... ca nous donne : 0040BC4D JMP 0040BD86
Je ne vous ai pas mis les codes hexa volontairements ;)) a vous de les chercher 8=((
L'editeur HEXA vous aidera a réaliser ce crack (modifications du log)
C'est pas du clefs en main... Les instructions du dessous vous eviteront d'avoir à décompiler le log...
Puis, il fo bien remplir cette bible ;)
Si vous voulez le refaire vous mêmes après avoir suivi l'exemple, supprimez la key dans la base de registre...
Nous aurions pu essayer de trouver le reg attendu, mais, cela ne sert a rien sur ce genre de crack...
:0040BC25 52 push edx
:0040BC26 6A06 push 00000006
:0040BC28 E8911B0600 call 0046D7BE
:0040BC2D 8D8C24A8000000 lea ecx, dword ptr [esp+000000A8]
:0040BC34 E81B080600 call 0046C454
:0040BC39 83F801 cmp eax, 00000001
:0040BC3C 0F8509020000 jne 0040BE4B
:0040BC42 8B842440010000 mov eax, dword ptr [esp+00000140]
:0040BC49 8378F807 cmp dword ptr [eax-08], 00000007
:0040BC4D 0F85EA010000 jne 0040BE3D<= Premier Sot
:0040BC53 0FBE10 movsx edx, byte ptr [eax]
:0040BC56 52 push edx
:0040BC57 E864640400 call 004520C0
:0040BC5C 83C404 add esp, 00000004
:0040BC5F 85C0 test eax, eax
:0040BC61 0F84D6010000 je 0040BE3D
:0040BC67 8B842440010000 mov eax, dword ptr [esp+00000140]
:0040BC6E 0FBE4801 movsx ecx, byte ptr [eax+01]
:0040BC72 51 push ecx
:0040BC73 E848640400 call 004520C0
:0040BC78 83C404 add esp, 00000004
:0040BC7B 85C0 test eax, eax
:0040BC7D 0F84BA010000 je 0040BE3D
:0040BC83 8B942440010000 mov edx, dword ptr [esp+00000140]
:0040BC8A 0FBE4202 movsx eax, byte ptr [edx+02]
:0040BC8E 50 push eax
:0040BC8F E82C640400 call 004520C0
:0040BC94 83C404 add esp, 00000004
:0040BC97 85C0 test eax, eax
:0040BC99 0F849E010000 je 0040BE3D
:0040BC9F 8B8C2440010000 mov ecx, dword ptr [esp+00000140]
:0040BCA6 0FBE5103 movsx edx, byte ptr [ecx+03]
:0040BCAA 52 push edx
:0040BCAB E810640400 call 004520C0
:0040BCB0 83C404 add esp, 00000004
:0040BCB3 85C0 test eax, eax
:0040BCB5 0F8482010000 je 0040BE3D
:0040BCBB 8B842440010000 mov eax, dword ptr [esp+00000140]
:0040BCC2 0FBE4804 movsx ecx, byte ptr [eax+04]
:0040BCC6 51 push ecx
:0040BCC7 E8F4630400 call 004520C0
:0040BCCC 83C404 add esp, 00000004
:0040BCCF 85C0 test eax, eax
:0040BCD1 0F8466010000 je 0040BE3D
:0040BCD7 8B942440010000 mov edx, dword ptr [esp+00000140]
:0040BCDE 0FBE4205 movsx eax, byte ptr [edx+05]
:0040BCE2 50 push eax
:0040BCE3 E8D8630400 call 004520C0
:0040BCE8 83C404 add esp, 00000004
:0040BCEB 85C0 test eax, eax
:0040BCED 0F844A010000 je 0040BE3D
:0040BCF3 8B8C2440010000 mov ecx, dword ptr [esp+00000140]
:0040BCFA 0FBE5106 movsx edx, byte ptr [ecx+06]
:0040BCFE 52 push edx
:0040BCFF E8BC630400 call 004520C0
:0040BD04 83C404 add esp, 00000004
:0040BD07 85C0 test eax, eax
:0040BD09 0F842E010000 je 0040BE3D
:0040BD0F 8B842440010000 mov eax, dword ptr [esp+00000140]
:0040BD16 0FBE4804 movsx ecx, byte ptr [eax+04]
:0040BD1A 0FBE5006 movsx edx, byte ptr [eax+06]
:0040BD1E 8D0C49 lea ecx, dword ptr [ecx+2*ecx]
:0040BD21 8D0CCA lea ecx, dword ptr [edx+8*ecx]
:0040BD24 8D1449 lea edx, dword ptr [ecx+2*ecx]
:0040BD27 0FBE4802 movsx ecx, byte ptr [eax+02]
:0040BD2B 8D0CD1 lea ecx, dword ptr [ecx+8*edx]
:0040BD2E 8D1449 lea edx, dword ptr [ecx+2*ecx]
:0040BD31 0FBE4805 movsx ecx, byte ptr [eax+05]
:0040BD35 8D0CD1 lea ecx, dword ptr [ecx+8*edx]
:0040BD38 8D1449 lea edx, dword ptr [ecx+2*ecx]
:0040BD3B 0FBE08 movsx ecx, byte ptr [eax]
:0040BD3E 8D0CD1 lea ecx, dword ptr [ecx+8*edx]
:0040BD41 8D1449 lea edx, dword ptr [ecx+2*ecx]
:0040BD44 0FBE4801 movsx ecx, byte ptr [eax+01]
:0040BD48 0FBE4003 movsx eax, byte ptr [eax+03]
:0040BD4C 8D0CD1 lea ecx, dword ptr [ecx+8*edx]
:0040BD4F 8D1449 lea edx, dword ptr [ecx+2*ecx]
:0040BD52 8BCD mov ecx, ebp
:0040BD54 81E155555555 and ecx, 55555555
:0040BD5A 8D94D067216BFB lea edx, dword ptr [eax+8*edx-0494DE99]
:0040BD61 8BC5 mov eax, ebp
:0040BD63 D1E8 shr eax, 1
:0040BD65 2555555555 and eax, 55555555
:0040BD6A 8D0C48 lea ecx, dword ptr [eax+2*ecx]
:0040BD6D 8D0489 lea eax, dword ptr [ecx+4*ecx]
:0040BD70 C1E008 shl eax, 08
:0040BD73 2BC1 sub eax, ecx
:0040BD75 8D04C0 lea eax, dword ptr [eax+8*eax]
:0040BD78 8D0441 lea eax, dword ptr [ecx+2*eax]
:0040BD7B 8D0C40 lea ecx, dword ptr [eax+2*eax]
:0040BD7E 3BD1 cmp edx, ecx
:0040BD80 0F85B7000000 jne 0040BE3D <= dernier SOT
:0040BD86 E8A4360700 call 0047F42F<= VALIDATION
:0040BD8B 8B4004 mov eax, dword ptr [eax+04]
:0040BD8E 55 push ebp
* Possible StringData Ref from Data Obj ->"Key"
|
:0040BD8F 684CA44A00 push 004AA44C
* Possible StringData Ref from Data Obj ->"Install"
|
:0040BD94 6844A44A00 push 004AA444
:0040BD99 8BC8 mov ecx, eax
:0040BD9B E8A3A30600 call 00476143
:0040BDA0 C605C0114C0000 mov byte ptr [004C11C0], 00
:0040BDA7 8D8C2444010000 lea ecx, dword ptr [esp+00000144]
:0040BDAE C68424B40400000B mov byte ptr [esp+000004B4], 0B
:0040BDB6 E87B150600 call 0046D336
:0040BDBB 8D8C2440010000 lea ecx, dword ptr [esp+00000140]
:0040BDC2 C68424B40400000A mov byte ptr [esp+000004B4], 0A
:0040BDCA E867150600 call 0046D336
:0040BDCF 8D8C2404010000 lea ecx, dword ptr [esp+00000104]
:0040BDD6 C68424B404000009 mov byte ptr [esp+000004B4], 09
:0040BDDE E89FF40600 call 0047B282
:0040BDE3 8D8C24A8000000 lea ecx, dword ptr [esp+000000A8]
:0040BDEA C68424B404000003 mov byte ptr [esp+000004B4], 03
:0040BDF2 E8FD020600 call 0046C0F4
:0040BDF7 8D4C2458 lea ecx, dword ptr [esp+58]
:0040BDFB C68424B404000002 mov byte ptr [esp+000004B4], 02
:0040BE03 E868630500 call 00462170
:0040BE08 8D4C2458 lea ecx, dword ptr [esp+58]
:0040BE0C E86F640500 call 00462280
:0040BE11 8D4C241C lea ecx, dword ptr [esp+1C]
:0040BE15 C68424B404000000 mov byte ptr [esp+000004B4], 00
:0040BE1D E814150600 call 0046D336
:0040BE22 8D4C2414 lea ecx, dword ptr [esp+14]
:0040BE26 C78424B4040000FFFFFFFF mov dword ptr [esp+000004B4], FFFFFFFF
:0040BE31 E800150600 call 0046D336
:0040BE36 B001 mov al, 01
:0040BE38 E9AA000000 jmp 0040BEE7
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040BC4D(C), :0040BC61(C), :0040BC7D(C), :0040BC99(C), :0040BCB5(C)
|:0040BCD1(C), :0040BCED(C), :0040BD09(C), :0040BD80(C)
|
:0040BE3D 6AFF push FFFFFFFF
:0040BE3F 6A10 push 00000010
* Possible Reference to String Resource ID=03005: "You entered an invalid unlock code.
The program has not been"
|
:0040BE41 68BD0B0000 push 00000BBD
:0040BE46 E8808F0600 call 00474DCB
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040BC3C(C)
|
:0040BE4B 8A442413 mov al, byte ptr [esp+13]
:0040BE4F 33DB xor ebx, ebx
:0040BE51 84C0 test al, al
:0040BE53 0F94C3 sete bl
:0040BE56 8D8C2444010000 lea ecx, dword ptr [esp+00000144]
:0040BE5D C68424B40400000E mov byte ptr [esp+000004B4], 0E
:0040BE65 E8CC140600 call 0046D336
:0040BE6A 8D8C2440010000 lea ecx, dword ptr [esp+00000140]
:0040BE71 C68424B40400000D mov byte ptr [esp+000004B4], 0D
:0040BE79 E8B8140600 call 0046D336
:0040BE7E 8D8C2404010000 lea ecx, dword ptr [esp+00000104]
:0040BE85 C68424B40400000C mov byte ptr [esp+000004B4], 0C
:0040BE8D E8F0F30600 call 0047B282
:0040BE92 8D8C24A8000000 lea ecx, dword ptr [esp+000000A8]
:0040BE99 C68424B404000003 mov byte ptr [esp+000004B4], 03
:0040BEA1 E84E020600 call 0046C0F4
:0040BEA6 8D4C2458 lea ecx, dword ptr [esp+58]
:0040BEAA C68424B404000002 mov byte ptr [esp+000004B4], 02
:0040BEB2 E8B9620500 call 00462170
:0040BEB7 8D4C2458 lea ecx, dword ptr [esp+58]
:0040BEBB E8C0630500 call 00462280
:0040BEC0 8D4C241C lea ecx, dword ptr [esp+1C]
:0040BEC4 C68424B404000000 mov byte ptr [esp+000004B4], 00
:0040BECC E865140600 call 0046D336
:0040BED1 8D4C2414 lea ecx, dword ptr [esp+14]
:0040BED5 C78424B4040000FFFFFFFF mov dword ptr [esp+000004B4], FFFFFFFF
:0040BEE0 E851140600 call 0046D336
:0040BEE5 8AC3 mov al, bl
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040B3DD(U), :0040B485(U), :0040BA16(U), :0040BAB2(U), :0040BE38(U)
|
:0040BEE7 8B8C24AC040000 mov ecx, dword ptr [esp+000004AC]
:0040BEEE 5F pop edi
:0040BEEF 5E pop esi
:0040BEF0 5D pop ebp
:0040BEF1 64890D00000000 mov dword ptr fs:[00000000], ecx
:0040BEF8 5B pop ebx
:0040BEF9 81C4A8040000 add esp, 000004A8
:0040BEFF C3 ret
Bon courage ;))
MOVAX1St [DSK]
A peine finis ce petit exercices que je recois quelques textes, que je vous retransmets....
A etudier.
RETOUR