摘要: stdcall和cdecl: stdcall和cdecl 压栈方向都是从右到左 区别在于c约定是调用方在函数返回后add esp,n指令清除堆栈中的参数,而stdcall在被调函数内使用ret n来清理堆栈内的参数。 另外c约定是可以使用可变数量参数的,而stdcall不可以,这是因为c约定清理工作 阅读全文
posted @ 2018-02-25 20:10 FancyBit 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 最近在看IDA的书,讲汇编语言的部分提到了一种防止递归向下汇编器逆向程序的方法 这里esp指向栈顶,也就是调用方最后入栈的返回地址。然而实际在VC2017里用内联汇编这么做是不行的,原因可以看看VC生成的汇编 代码: 可以看到VC生成的汇编代码中添加了一些前缀后缀: 前缀用来保存调用前堆栈顶ebp, 阅读全文
posted @ 2018-02-25 16:06 FancyBit 阅读(1716) 评论(0) 推荐(0) 编辑