-on met 1911 car ça fait 777 en hexa (j'avais vu ça dans un tut de bama il
y a longtemps et je l'ai gardé)
-getdlgitemtexta c'est l'API qui va chercher le chaines de caractères dans
une boite de dialogue, ici pour récupérer le nom et le sérial.
On refait ctrl+d pour quitter softice puis on fait OK dans la boite de dialogue.
Miracle : Softice s'est reveillé, le bpx a donc fonctionné.
On fait F5 pour continuer car il y a 2 chaines a loader et Si rebreak encore.
kewl.
Mais la on est dans les apis windows.
On fait donc F12 pour revenir dans le prog et voila ce qu'on a :
(regarder en haut de l'ecran de softice pour voire la valeur des registres)
a partir de 0040A117 :
***************************************************************************************
PUSH 1E
PUSH EAX
PUSH 000003FD
PUSH ESI
CALL EDI <-- L'appel a getdlgitemtexta
LEA EAX,[ESP+0C] <-- fout notre nom dans eax, pour le voir faites bouton droit dessus
puis display, Ho y a marque TiPiaX
PUSH EAX <-- met le nom sur la pile
CALL 0040B1C0 <-- call qui verifie que le nom fait 4 lettres au moins
ADD ESP,04
MOV EBX,EAX
LEA EAX,[ESP+2C]
PUSH EAX
CALL 0040B090 <-- Fait apparaitre 777 dans EAX (eh oui c'est notre serial)
ADD ESP,04
MOV EDI,EAX <-- y fout notre serial dans EDI
TEST EDI,EDI
JNZ 0040A17B --------- <-- on saute
|
|
|
|----------------------- <-- on atteris
|
> CMP EDI,EBX <-- y compare notre serial a un truc
JNZ 0040A1B4 <-- puis nous balance ou non sur : "Wrong registration number"
***************************************************************************************
Arf ça ne sert a rien de forcer ce dernier saut car on obtiendrait le bon message
mais on serait pas enregistré.
Vous remarquez qu'il faut donc un nom de plus de 4 lettres.
pour ceux que ça interresse la procédure appelée par le call qui vérifie ça est :
------------------------
CALL [KERNEL32!lstrlen] <-- renvoie taille dans esp+2c
MOV [ESP+2C],EAX <-- met la taille dans eax
CMP EAX,04 <-- compare la taille a 4
JGE 0040B1F3 <-- si > 4 on saute et on peut s'enregistrer sinon on saute pas
et on peut pas s'enregistrer
------------------------
La ligne intéressante est celle ci :
CMP EDI,EBX
Et oui a quoi le programme peut il bien comparer notre serial entré.
Mais bien sur ! Il le compare au bon serail pour savoir si le notre est valide.
On trace donc jusqu'a cette ligne avec F10 puis on tape (sous Si bien sur) :
? EBX
on obtient :
0023BC97 0002342039
23BC97 correspond a notre bon serial en hexa et :
2342039 au bon serial en decimal.
Il n'y a plus qu'a s'enregistrer avec :
nom : TiPiaX
serial : 2342039
Enfin quand meme, maintenant que je connais comment il est foutu j'aimerais bien essayer
de le keygener. Lol j'ai peur de me surestimer. Si vous lisez ce qui suit c'est que non.
hehe
Et ça RouLeZ.
J'espere avoir ete clair. Merci d'avoir lu ce tut.
ps: pour enlever vos breakpoints faites : "bc*" sous Si