No img

* 본 문서는 리버싱 핵심 원리책(일명 나뭇잎 책)과 인터넷 자료들을 바탕으로 학습한 기록입니다.

* 개인의 학습을 위한 자료이기 때문에 정확하지 않은 정보가 포함되어 있을 수 있습니다.

 

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