Bonjour à tous, voilà j'aurai besoin d'un peu d'aide pour comprendre à 100% le fonctionnement de ce petit code (qui est donc suivi du 'vrai' code à exécuter,lui même préalablement encodé en XOR avec la clé F5520488) :
Ce que j'ai compris :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 adr : Hex : Command : Flags : 00 33C9 XOR ecx,ecx 02 83E9CB SUB ecx,0xCB 05 D9EE FLDZ 07 D97424F4 FSTENV [esp-0x0C] 0B 5B POP ebx 0C 817313880452F5 XOR [ebx+0x13],0xF5520488 13 83EBFC SUB ebx,0xFC 16 E2F4 LOOP [-0x0C]
1ere ligne : on initialise le compteur à 0, ecx := 0
2eme : on affecte au compteur la valeur correspondante au nombre d'itérations que l'on veut effectuer avec loop, ecx := 53(dec)
On peut donc en déduire que la taille du code encodé est de (53+1)*4 octets, soit 216 octets
3ème : ??
4 ème : ??
5éme : on affecte ?? à ebx, ebx := ??
6ème : le début du corps de la boucle, on va effectuer un XOR entre le contenu de [ebx+0x13] (à quoi correspond le 0x13??) et F5520488
7ème : on décale (incrémente?) ebx de 4 octets (pour pouvoir appliquer notre XOR à la suite du code
8ème : si ecx != 0, on décrémente ecx de 1 et on saute à l'adresse 0C, sinon on sort de la boucle en sautant à l'instruction suivant directement LOOP.
( mais à quoi correspond le '-' dans [-0x0C]? )
Question : remplacer les ??? dans mon post xD ( et accessoirement corriger toute affirmation erronée que j'aurai pu faire ^^' )
Merci d'avance pour toute aide !
car je comprends le but de ce code mais pas son fonctionnement exact
Partager