******************************************************************************
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{  Serial Fishing  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
******************************************************************************


Serial Fishing de Winamp Skinmaker 1.05
********************************

Ce cours s'adresse a tous, en plus la technique est réelement simple a comprendre. Si vous voulez un peu plus compliqué lisez le tut sur le hard-patching.

Qu'est ce qu'un serial fishing ?

Le sérial Fishing revient a trouver le bon numéro de série en fonction de son nom pour s'enregistrer dans un shareware.
Par exemple ici on a winamp skinmaker mais il est limité a 30 jours. Bien que ce prog n'ait aucun interet (lol!) on a pas envie d'etre limité.
Pour s'enregistrer on va dans help->about->register on met :

nom : TiPiaX
serial : 123456

et la le prog nous dit : "Fail","Wrong registration number"
Et nous on se dit :"si seulement j'avais un bon numéro de série".
Hehe on va donc le trouver par nous meme.

Vous l'aurez donc compris le serial fishing represente un crack "propre" car il n'y a pas besoin de modifier le prog (logique ...)

Les outils :
*********


Softice (le 4 fera l'affaire)

pour ceux qui ne savent pas l'utiliser, lisez ma doc toute simple sur hccc#1 ou sur www.fcf2000.cjb.net.

Le crack :
********

hehe, on retourne dans help->about->register puis on met :

nom : TiPiaX
serial : 1911
puis on fait ctrl+d pour reveiller softice et on tape ce breakpoint:

bpx getdlgitemtexta

explication :
**********

-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


TiPiaX / French Cracking Force