Zwykle podczas przeglądania tablicy możemy znaleźć następujące wiersze kodu asemblera:
mov [base_address_of_array + array_index * size_of_an_item_in_array], edx
W twoim przypadku przypuszczam, że tablica jest na stosie (dlatego znajdujesz esp
jako część adresu podstawowego tablicy. Następnie masz również przesunięcie do esp
, które wynosi 0Ch
(czyli 12 w systemie dziesiętnym). Zatem tablica znajduje się w esp + 0Ch
. Następnie eax
to indeks, a 4
to rozmiar pozycji w tablicy (prawdopodobnie liczba całkowita 4 bajty).
Jeśli spojrzymy na w dziura CFG, przetłumaczyłbym to z powrotem na C w coś takiego:
int array[4]; for (int i = 0; i < 4; ++i) array[i] = i;
Uwaga : Przypuszczałem, że niebieski łuk w CFG wraca do loc_401381
.
Komentarze