함수 호출 규약
cdecl
test(1, 2, 3, 4)
push 4
push 3
push 2
push 1
call test
add esp, 16
stdcall
test(1, 2, 3, 4)
push 4
push 3
push 2
push 1
call test --> test함수 내부에서 ret 16 수행
fastcall
파라미터 : CPU 레지스터 2개 이용. (ECX, EDX)
test(1, 2, 3, 4)
push 4
push 3
mov edx, 2
mov ecx, 1
call test --> test함수 내부에서 ret 16 수행
c++ 호출 규약
비주얼 c++ : this를 ecx에 넣고 stdcall 처럼 동작.
g++ : 첫 번째 파라미터에 암시적으로 this를 넣고 cdecl 처럼 동작.
'Reversing > Reversing' 카테고리의 다른 글
static 안티 디버깅 (0) | 2013.01.03 |
---|---|
PE의 IAT입력 과정 (0) | 2012.10.31 |
Windbg 명령어 요약 (0) | 2012.10.13 |
혼동되는 어셈블리 명령어 (2) | 2012.10.07 |
어셈블리어의 주소 지정 방식 (0) | 2012.09.10 |