Nero Burning 3.0.4.0 

Nero utilise une technique de saisie de caractère que l'on recontre assez souvent.
Il n'y a pas de bouton OK ou REGISTER permettant de signaler au prog : "vas y coco verifie mon serial !!"
En fait, le serial est vérifié au fur et à mesure de la saisie.
Ici, il commence par vérifier le nombre de chiffre saisie. Si ce nombre est ok, on va vers la routine de verif en elle-même, 
sinon, on boucle...Et si la verif est négative, on retourne à la boucle de saisie 
(et tout ça est totalement transparent pour l'utilisateur).

Ce type de saisie est immédiatement repérable ici dans la mesure où l'on voit bien que le bouton "OK", 
permettant de fermer la fenêtre est grisé (et ne s'active que si le serial est bon).

(Parfois, avec certains programmes, le système est plus vicieux. 
On a bien un bouton OK (ou REGISTER), mais la vérif du serial se fait bien aussi au fur et à mesure et quand on
appuie sur OK, le programme sait déjà que c'est ok ou non. C'était juste une parenthèse ça...la preuve -> ).


Bon tout ceci pour dire qu'on va pas se laisser emmerder par ce genre de truc.
On pose un BPX GetWindowTextA (même pas la peine de se faire chier avec un hmemcpy).
On a 3 break (becoze trois champs de saisi, Name, Organisation et Serial en lui-même).

On s'intéresse qu'au dernier et on trace...
Et on finit par attérir sur la fameuse vérif qui teste si oui ou non on a atteint le nombre de chiffre du serial attendu : 
ce chiffre c'est 16 (0x10). Il faut donc entrer 16 chiffres pour dépasser enfin la boucle de saisie.
(offset : 43E308)

Juste derrière cette verif, première grosse surprise : 

On a en 43E32E un CALL 43E0D0 qui ressemble fort à une routine de verif !!!
On saute dessus ! La routine est relativement classique.
 Elle vérifie si chaque chiffre du serial trouve sa correspondance dans une table (après une petite soustraction). 
Bref on finit par générer un serial (un des nombreux possibles)
: 1300202400006115
Essayer pour voir (c'est sans danger :).
On obtient un superbe : "ceci est un numéro piraté etc..." (ou un truc dans le genre).
Visiblement, les auteurs de NERO ont inclus dans la version 3.0.x le moteur de serial des version antérieures (enfin je présume), 
afin de baiser les pauvres petits malins voulant utiliser leur ancien 
serial.
J'trouve ça marrant moi ! (il me faut pas grand chose me direz-vous...)

Bref, la vraie routine de verif est forcément derrière celle là...
Donc on entre n'importe koi de 16 chiffres et on continue à tracer...
Et on tombe en 43E3A1 qui est le début de la vraie routine...

Que fait-elle ?
Déjà, elle se fout complétement de notre NAME ou de l'Organisation.
Elle ne s'occupe que de tester si le serial vérifie justemment certaines conditions.

On a donc un serial de 16 chiffres : 0123456789ABCDEF

0 : doit être à 1 ou 3
1 : doit être supérieur ou égale à 3 (correspondant à la version du logiciel le 3).

Ensuite, les chiffres 1,2 et 4,5,6,7,8,9,A,B vont être utiliser pour générer 5 autres 
chiffres (par une méthode assez alambiquée il faut bien l'avouer).

C'est 5 chiffres on va les appeler X1 X2 X3 X4 X5
Ensuite le programme vérifie si tout simplement : 

3 = X1
C = X2
D = X3
E = X4
F = X5

Ce qui donne comme serials valides (entre autres évidemment) : 

1662666666669497
1406000000004114

voilà...
 On peut trouver sur le site de MOVAX1St http://www.cyberjunkie.com/movax1 un générateur de Serial pour NERO.
A noter, qu'il ne marche, avec la version 3.0.4.0, que si on entre 10 chiffres commençant par 1 ou 3.
Il foire pour les autres (becoze verif d'au-dessus testant le premier chiffre du serial). 
Les programmeurs de NERO ont du rajouter cette vérif ultérieurement...
Evidemment n'utiliser ce Generator que pour info. Essayer plutôt de trouver votre propre serial avec Softice.

Mister x
RETOUR