在Debug版本下的调用处,我们会看到这种代码,没有流水线优化,没有任何优化
看到了,两个push,紧接着一个Call,然后平栈在外面
识别参数
有经验的可能会说两个push 就是两个参数,其实不然...里面都是各种流程和指令
4.识别返回值,在识别返回值的时候,我们发现调用了一个_ftol函数,看到这个函数可以确定返回的是一个__int64,当然我们进入函数内部看到了
下方使用eax 和edx了,...二丶识别stdcall 函数参数,返回值,参数类型
stdcall比较简单.但是和fastcall还是有区别的.因为fastcall会有寄存器传参,所以把两个的区别搞明白就可以了.....
4.识别调用约定,函数内部平栈,如果没有寄存器传参则是stdcall,如果有寄存器传参,则是fastcall
三丶识别 fastcall 函数,参数个数,参数类型,返回值
高级代码:
double...1.识别调用约定, 我们看MyAdd内部,还是MySub内部,里面都是用了外面传入的ecx,并且没有保存.那么fastcall就是ecx传参了.平栈和stdcall一样,函数内部平栈
2.识别函数的个数