Security/Reversing

함수 호출 규약

래울 2020. 3. 7. 16:33

주요 함수 호출 규약으로 cdecl, stdcall, fastcall 의 3가지가 있으며, 이외에도 clrcall, thiscall fortran등등의 규약들이 존재한다.

 

함수 호출 규약의 구분

- 인자 전달(인자 전달의 순서)

- 인자 전달에 사용하는 매체(스택, 레지스터)

 

함수 호출 규약의 종류

규악 정리하는 쪽 인자 전달 매체 인자 전달 순서
cdecl Caller 스택 오른쪽에서 왼쪽
stdcall Callee 스택 오른쪽에서 왼쪽
fastcall Callee 레지스터, 스택 오른쪽에서 왼쪽

*Caller, 호출자 - 함수를 호출한 쪽

*Callee, 피호출자 - 호출을 당한 함수


 

9 10