출처: https://securely.tistory.com/entry/NO13-Stack-Frame과-변수-공간-확보에-대해 [Securely의 정보보안블로그]
Stack Frame을 사용하는 경우 함수는 항상 Frame Pointer를 셋업하는 코드 구문으로 시작하게 됩니다.
Stack Frame?
1. 함수가 사용하게 되는 Stack영역 입니다.
2. 실행 중인 함수는 자신 만의 Stack영역을 사용하게 됩니다.
3. 함수가 실행하게 되면 Stack Frame을 오픈하게 되고, 함수가 종료하게 되면 Stack Frame을 닫게 됩니
일반적인 셋업코드구문을 보겠습니다.
x86
PUSH EBP => caller의 Stack Frame Pointer를 백업합니다.
MOV EBP, ESP => ESP값을 EBP에 복사함으로써 Stack Frame Pointer를 셋업합니다
SUB ESPP, 72 => 지역 변수 할당
armv6
push {r11, lr}
add r11, sp, #4
sub sp, sp, #72
이러한 셋업코드를 분류해놓은게 있으면 좋겠다는 생각이 들었는데, 나중에 관련 도서를 봐야할듯하다.
관련 도서
Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation
'기본개념' 카테고리의 다른 글
QEMU 파일전송 (0) | 2020.01.05 |
---|---|
[ROP] Ret2ZP on ARM (like RTL on x86) (0) | 2020.01.05 |
[펌] ARM / x86 에서의 함수 호출 /리턴방식 비교 (0) | 2020.01.01 |
[ARM Aseembly basics Part 1 to 7] - v1.0 (0) | 2019.12.25 |
CMP와 TEST 비교 (0) | 2019.12.24 |