Cette question a déjà une réponse ici :
Réponse
Habituellement, en parcourant un tableau, nous pouvons trouver les lignes de code dassemblage suivantes:
mov [base_address_of_array + array_index * size_of_an_item_in_array], edx
Dans votre cas, je suppose que le tableau est sur la pile (cest pourquoi vous trouvez esp
comme partie de ladresse de base du tableau. Ensuite, vous avez également un décalage vers esp
qui est 0Ch
(qui est 12 en décimal). Ainsi, le tableau est situé à esp + 0Ch
. Ensuite, eax
est lindex et 4
est la taille dun élément du tableau (probablement un entier de 4 octets).
Si nous regardons le w trou CFG, je le traduirais en C dans quelque chose comme ceci:
int array[4]; for (int i = 0; i < 4; ++i) array[i] = i;
Remarque : Jai supposé que larc bleu dans le CFG revenait à loc_401381
.
Commentaires
- Le code dassemblage ressemble à une arithmétique de pointeur avec des tableaux. Nest-ce pas '?