반응형

함수호출 규약이란 함수를 호출할때 파라미터를 전달하는 방식을 뜻한다.

 

cdecl stdcall fastcall
가변길이 파라미터의 관리가 가능하다. ADD ESP,XXX 등 함수의 파라미터를관리하는 코드가 없어서 코드가 짧아진다. 파라미터를 레지스터에 관리한다. 더 빠른 함수의 호출이 가능하지만 관리가 어렵다.

몇몇 부분이해가 가지 않았던 부분은 파라미터의 변수 값을 알아내는 법과 ESP의 레지스터 값을 정리하는 과정이 조금 이해가 힘들었다. 2숫자이면 4바이트 씩일것이고 더하는 연산을 하더라도 4바이트여야 하는데 왜 8바이트 인지 조금 이해가 어려웠다.

 

특히 cdecl 은 c언어에서 많이 사용되는 방식이고 stdcall 방식은 winAPI 같은 코드에서 호환성을 좋게 하기 위해서 많이 사용된다. EP코드를 구별할때 많이 사용될것 같다. 크랙미를 풀면서 이와 같이 스택을 정리하는 부분을 많이 봤기 때문이다.

반응형
Posted by 53C
,