* 본 문서는 리버싱 핵심 원리책(일명 나뭇잎 책)과 인터넷 자료들을 바탕으로 학습한 기록입니다.
* 개인의 학습을 위한 자료이기 때문에 정확하지 않은 정보가 포함되어 있을 수 있습니다.
Calling Convention: 함수를 호출하는 방식에 대한 일종의 규약으로 인수 전달 방법, 반환 값, 인수 전달을 위해 사용한 메모리 정리 등을 규정한 것.
- 함수 호출 전 파라미터를 *스택을 통해 전달
- cdecl: 주로 C언어에서 사용되는 방식, Caller에서 스택을 정리
- stdcall: Win32 API에서 사용, Caller에서 스택을 정리
- fastcall: 함수에 전달하는 파라미터 일부를 레지스터를 이용하여 전달. 좀 더 빠른 호출이 가능하지만 ECX, EDX 레지스터를 관리하는 추가적인 오베헤드가 필요한 경우가 있음.
스택: 프로세스에서 정의된 메모리 공간. 아래 방향으로 자란며 PE헤더에 그 크기가 명시
Caller: 함수를 호출한 쪽
Callee: 호출을 당한 함수
'Security > Reversing' 카테고리의 다른 글
코드엔진 Basic RCE L04 (0) | 2020.03.12 |
---|---|
코드엔진 Basic RCE L03 (0) | 2020.03.12 |
Reversing Study - day 7 (0) | 2020.03.12 |
Reversing Study - day 6(PE File) (0) | 2020.03.12 |
Reversing Study - day 4 (0) | 2019.11.28 |
Reversing Study - day 3(스택 프레임) (0) | 2019.11.27 |
Reversing Study - day 2(레지스터) (0) | 2019.11.09 |
Reversing Study - day 1 (0) | 2019.11.09 |