index du tableau dans lassemblage? [dupliquer]

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 '?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *