Gamez Appz Films  Mp3s  Cracking  News  Dossier du Mois  XXX  Répertoire  Blagues  Délires  Citations  Mail me

 

Cracks-Hacks

 

(2):

: push ecx ; sauvegarde le nbre de caract. de notre compteur sur la pile

: inc eax ; eax:=eax+1 ie incrémentation du caratère à droite

: mov byte ptr [esp+ecx+00000080], al ; le replace en [esp+7c]

: cmp eax, 0000003A ; compare le caractère à ";"

: jne bye_bye ; pas égal <=> on le renvoit dans la routine de vérif' d'ACDSee

: mov byte ptr [esp+ecx+00000080], 30 ; égal ? On le remplace par 0 (0x30 en ASCCII !!)

: dec ecx / on vérifie tous les chiffres car après 1699, on

: cmp ecx, FFFFFFFF / a 1700, donc il faut incrémenter 3 caractères !!

: je routine_3 /

: xor eax, eax /

: mov al, byte ptr [esp+ecx+00000080] /

: jmp (2) /
Attention : on a mis ecx sur la pile, ecx est un registre 32 bits donc 4 octets, donc on a déplacer la pile de 4 octets, d'où on a un mov byte ptr [esp+ecx+80] au lieu de mov byte ptr [esp+ecx+7C] !!!! (0x80 = 0x7C + 0x04)
La routine_3 est une routine spéciale qui permet de passer de 999 à 1000 par exemple :

: pop ecx ; restaure la pile

: mov [esp+ecx+7D], 30 ; met un "0" en plus à droite

: mov al, byte ptr [esp+7C] ; incrémente le chiffre le plus 

: inc eax ; à gauche.

: mov byte ptr [esp+7C], al ; et le replace en [esp+7c]

: jmp vérif ; retour à la routine de vérif'.

Il y a également la routine bye_bye :

: pop ecx ;restaure la pile

: jmp vérif ; retour à la routine de vérif'.
Evidement, pas question d'écrire ça avec son pauvre éditeur hexa, Soft-Ice nous permet d'assembler notre code à l'aide de la commande "a [adresse]".

Voici la source complête du reverse enginering d'ACDSee v2.22 avec les offsets (à assembler directement sous SI !!!). En noir : le code original et en rouge les offset modifiés.




 précédent    Retour à l'accueil     suivant

 

©Copyright Wardog's House