Reversing/Reversing
함수 호출 규약
bbolmin
2012. 10. 16. 19:49
함수 호출 규약
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 처럼 동작.