본문 바로가기
Programming/Hacking & Security

[Reversing] 지역변수 할당(sub이용), lea, rep By 용호

by ★용호★ 2010. 5. 14.


2010년 5월 11일 화요일

Sub 명령을 이용하면 지역변수를 할당할 공간이 스택에 쌓이게 된다.  여기서 sub esp, 8은 스택의 공간 하나의 크기가 4이므로 두개의 공간이 생성된다. 아래에서 보면 스택에 두개의 공간이 생긴 것을 볼 수 있다.



그 다음 mov 명령을 이용해서 할당된 공간에 값을 초기화 한다.
여기서 '[ ]'안의 값은 주소를 나타낸다.



LEA는 주소를 복사하는 명령이므로 아까와는 다르게 ESI와 EDI에 주소값이 들어가게 된다.



MOVS명령을 이용하면 ESI의 주소값을 EDI로 DWORD 크기만큼 복사한다.



Rep(repeat) : 반복
Rep를 사용하기 위해서는 ecx 값의 초기화가 선행되어야 한다.
MOVS, SCAS, STOS등 여러 명령어에 접두사 형식으로 사용되며 ECX에 저장된 값만큼 해당 명령어를 반복 수행
Ex) rep movsb : movsb명령을 ecx값 만큼 반복






댓글