ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Programme : FireHand Ember v3.0.7
Protection: Numero de Serie
Ecrit par : LuCiFuGe RoFoCaLe [STYX]
Type de Crack: REG + Patch
Date : 12/1997
Niveau: Debutant Confirme
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Introduction:
ÄÄÄÄÄÄÄÄÄÄÄÄÄ
Ce shareware possede plusieurs petites astuces qui seront tres bien a etudier
dans notre petite initiation au crack. Je vais distribuer ce soft avec mon
tutorial mais si vous ne l'avez pas regarder sur: http://www.firehand.com
ou PC TEAM CD PRO numero 30
Phase D'approche:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
a) on voit dans le premier nag screen, un compteur de lancement.
b) il y a une possibilite de s'enregistrer par un numero de serie :)
Nous allons laisser tomber le compteur de lancement, qui etant limite a 35
devrait etre nettement suffisant pour notre crack. Donc on va essayer la
methode habituelle pour les numeros de serie: Je pose un BPX hmemcpy, je
clique deux fois sur F5 (une fois pour la copie du nom et une fois pour le
numero de serie), je trace comme un fou avec F10 pour me retrouver devant:
409F90: LEA EDX,[ESP+C] = mon mauvais code
LEA EAX,[ESP+20]
PUSH EDX
PUSH EAX
MOV DWORD PTR[ESP+28],B300FEA1
CALL 4138D6 = Premier CALL a etudier
MOV EDI,EAX
CMP EDI,-1
MOV [ESI+34],EDI
JNZ 409FB5
XOR EAX,EAX
JMP 409FE2 = "Mauvaise Boite"
409FB5: TEST ESI,ESI
JZ 409FD6
CMP BYTE PTR[ESI],0
JZ 409FD6
LEA ECX,[ESP+20]
PUSH ESI
PUSH ECX
CALL 41389A = Deuxieme CALL a etudier
LEA EDX,[ESP+20]
PUSH EAX
PUSH EDX
CALL 413894 = Troisieme CALL a etudier
JMP 409FD9
409FD9: OR EAX,-1
XOR ECX,ECX
CMP EAX,EDI
SETZ CL
MOV EAX,ECX
409FE2: TEST EAX,EAX
JNZ 40A002
PUSH 41B8B4
PUSH EBX
CALL 41382E = Affiche la "Mauvaise Boite"
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄEtude du premier CALL:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
4138D6: JMP E0091B0 = Appel a une routine de Fireutil.dll
E0091B0: SUB ESP,C
PUSH ESI
MOV ESI,[ESP+8]
PUSH ESI
E0091B9: CALL [E001E44C]
CMP EAX,C = mon Code doit contenir 12 chiffres
JZ E0091CE = si pas assez de chiffres alors pas de saut
OR EAX,-1 = et mettre -1 dans EAX
POP ESI
ADD ESP,C
RET
8E0091CE: MOV EAX,ESI = contient notre mauvais code
ADD ESI,4
PUSH ESI
MOV CX,[EAX]
MOV [ESP+8],CX
MOV DL,[EAX+2]
LEA EAX,[ESP+B]
PUSH EAX
MOV [ESP+E],DL
CALL [E00BED0]
E0091FD: TEST EAX,EAX
JNZ E00920B = 12 chiffres donc le Code alors jump
OR EAX,-1
POP ESI
ADD ESP,C
RET
8E00920B: MOV EAX,[ESP+18] =EAX contient une cle calculee avec notre code
POP ESI
ADD ESP,C
RET 8 Donc comme vous pouvez le voir une cle est calculee avec notre mauvais code,
celle-ci servira sans doute apres.
Pour moi la cle-code = cccb44a
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Etude du deuxieme CALL:
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
CALL 41389A = Sur JMP E009222 Routine de FireUtil.dll
E009222 :MOV EBP,[ESP+10]
PUSH ESI
PUSH EDI
PUSH EBP
XOR EDI,EDI
CALL E01E44C
MOV EBX,EAX
XOR ESI,ESI
TEST EBX,EBXE
009237: JLE E009254
E009239: MOVSX EAX, BYTE PTR[EBP+ESI]
PUSH EAX
E00923E:CALL E00CEC0
LEA ECX,[EDI+ESI+1]
ADD ESP,4
IMUL EAX,ECX
ADD EDI,EAX
INC ESI
CMP ESI, EBX = ESI=1 EBX=8 la premiere fois
JL E009239
MOV EAX,EDI ...
RET 8Cette routine calcule, elle aussi une cle.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Etude du troisieme CALL:
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Appel encore d'une routine de FireUtil.dll
E009260: MOV EAX,[ESP+4]
MOV ECX,[ESP+8]
MOV EAX,[EAX]
XOR EAX,ECX
JGE E09270
NEG EAX
E009270: RET 8 dans XOR EAX,ECX on se sert de nos deux cles precedement calculees pour
constituer la cle finale :) pour moi c'est 4F24940F a mettre dans la base
de registre. Mais essayons de faire un patch pour ce soft..
Phase Finale:
ÄÄÄÄÄÄÄÄÄÄÄÄÄ
On obtient donc comme schema de protect: 409F90: LEA EDX,[ESP+C] = mon mauvais code
LEA EAX,[ESP+20]
PUSH EDX
PUSH EAX
MOV DWORD PTR [ESP+28], B300FEA1
CALL 4138D6 = Calcul la premiere cle
MOV EDI,EAX
CMP EDI,-1
MOV [ESI+34],EDI
JNZ 409FB5
XOR EAX,EAX
JMP 409FE2 ="Mauvaise Boite"
409FB5: TEST ESI,ESI
JZ 409FD6
CMP BYTE PTR[ESI],0
JZ 409FD6
LEA ECX,[ESP+20]
PUSH ESI
PUSH ECX
CALL 41389A = Calcul de la deuxieme cle
LEA EDX,[ESP+20]
PUSH EAX
PUSH EDX
CALL 413894= Calcul du code final (EAX)
JMP 409FD9
409FD9: OR EAX,-1
XOR ECX,ECX
CMP EAX,EDI = Compare le bon code et la premiere cle
SETZ CL
MOV EAX , ECX
409FE2: TEST EAX,EAX
JNZ 40A002
PUSH 41B8B4
PUSH EBX
CALL 41382E = Affiche la "Mauvaise Boite" Essayer de mettre la valeur de EDI dans EAX a la sortie du CALL 413894, et
presser F5....Le soft vous indique que votre code est juste :)Donc vous faites les modifications dans l'exe et hop vous relancez....
Merde cela ne marche pas et "Invalid Key" apparait. Essayons de comprendre pourquoi,
lesoft a modifie dans la base de registre User="" par User="Lucifuge" et Key=0 par Key=CCCB44Ah. Ben voila notre probleme,
c'est le mauvais code qui est mis dans la base de registre; donc effacons les valeurs dans key et user
de la base de registre, et relancons notre soft.
Cette fois copier EAX dans EDI,
Idem dans la base de registre !!!! Donc il y a une copie du mauvais
codequi se ballade en memoire:
409F90: LEA EDX,[ESP+C] = mon mauvais code
LEA EAX,[ESP+20]
PUSH EDX
PUSH EAX
MOV DWORD PTR [ ESP+28], B300FEA1
CALL 4138D6 = Calcul la premiere cle
MOV EDI,EAX
CMP EDI,-1
MOV [ESI+34], EDI = Stocke la cle calculee en 4138D6 pour le REG
JNZ 409FB5
XOR EAX,EAX
JMP 409FE2 ="Mauvaise Boite" Ben vi, c'est tout simplement en [ESI+34] que le code qui sert pour la base
de registre est copie. Donc je vais regarder ou je peux le recuperer...
Il y a dans la DLL, mais il faut savoir que celle ci a un checksum donc plus
de travail, je vais plustot chercher dans l'exe.
PUSH EDX
CALL 413894 = Troisieme CALL
JMP 409FD9
409FD9: OR EAX,-1
XOR ECX,ECX
CMP EAX,EDI
SETZ CL
MOV EAX, ECX
409FE2: TEST EAX,EAX
JNZ 40A002
PUSH 41B8B4
PUSH EBX
CALL 41382E
PUSH EDX
CALL 413894
JMP 409FE6
409FD9: OR EAX,-1
XOR ECX,ECX
CMP EAX,EDI
SETZ CL
MOV EAX,ECX
TEST EAX,EAX
JNZ 40A002
409FE6: MOV EDI,EAX
MOV [ESI+34],EAX
JMP 409FD9 Cela fait bcp de changement mais cela fonctionne et c'est bien le principal.
Pour le Patch:
Offset: 93D4 = EB 10
Offset: 93E6 = 8B F8 89 46 34 EB EC
Et n'oubliez pas de mettre 12 chiffres au code pour l'enregistrement
Pour le Reg: dans HKEY_LOCAL_MACHINE\SOFTWARE\Firehand Technologies\Ember\
Mettre user: Lucifuge Rofocale [STYX] key: 0C925633
ou
user: Lucifuge key: 4F24940F
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Voila c'est enfin fini !!!
LuCiFuGe RoFoCaLe [STYX] 1997--====================987654321_0==