보통 배열을 실행하면 다음을 찾을 수 있습니다. 다음 어셈블리 코드 줄 :
mov [base_address_of_array + array_index * size_of_an_item_in_array], edx
귀하의 경우에는 배열이 스택에있는 것 같습니다 (이것이 esp
는 배열의 기본 주소의 일부입니다. 그런 다음 esp
에 대한 오프셋 (0Ch
(10 진수 12). 따라서 배열은 esp + 0Ch
에 있습니다. 그런 다음 eax
가 색인이고 4
는 배열에있는 항목의 크기입니다 (아마도 4 바이트의 정수).
w를 보면 구멍 CFG의 경우 다음과 같이 C로 다시 변환합니다.
int array[4]; for (int i = 0; i < 4; ++i) array[i] = i;
참고 : CFG의 파란색 원호가 loc_401381
로 돌아가는 것으로 가정했습니다.
댓글