둘둘리둘둘리둘둘리둘둘리둘둘리둘

[Windows] 함수호출 규약 (Calling Convention) (x86) 본문

Windows/Reversing

[Windows] 함수호출 규약 (Calling Convention) (x86)

dool2ly 2015. 10. 13. 00:29

cdecl 

- C에서 default로 사용

- Caller가 스택 정리(ex: ADD ESP,8)

- 가변 갯수의 Parameter전달 가능


stdcall

- Win32API에서 사용 -> 호환성을 위해

- Callee가 스택 정리(ex: RETN 8)

- 코드 크기 줄어듬


fastcall

- stdcall과 동일하나 parameter 전달시 ECX,EDX 레지스터를 이용

- parameter가 2개이상일경우 스택이용

- 메모리(스택)이 아닌 레지스터(CPU)를 이용하여 빠른속도

- ECX, EDX 레지스터 필요시 백업 -> 코드 크기 늘어남

Comments