《逆向工程核心原理》笔记(3)——基础部分小结

函数调用使用栈,一般是这样的结构

pusb eax
push …
call …
push ebp
moe ebp esp

pop ebp
ret

push传参,对象或字符串类型传地址。
返回值在寄存器,或者传递的地址会被直接操作

函数调用约定

cdecl(C语言默认方式)
调用者(父函数)负责清理esp

stdcall _stdcall关键字编译源码
被调用者自己清理esp,

fastcall
类似stdcall,区别是是通过ecx和edx传参