_cdecl与_stdcall区别
摘要:_cdecl与_stdcall是最常用的的两种函数调用修饰,区别在于函数返回时,清理栈(恢复栈平衡)是caller做还是被调函数做。 1 4: _cdecl int add1(int a, int b) 2 5: { 3 00401020 push ebp 4 0040...
阅读全文
posted @
2014-06-06 08:42
木椅
阅读(245)
推荐(0)
在C语言中破坏函数调用堆栈
摘要:1 // 这段代码显示,在C语言修改函数的返回地址 2 int test1() 3 { 4 return 0; 5 } 6 7 int test2(int a) 8 { 9 *(&a-1) = (int)test1; // 将返回地址修改为test1 10 retu...
阅读全文
posted @
2014-05-27 13:44
木椅
阅读(628)
推荐(0)
rep stos ptr dword es:[edi]
摘要:今天读代码时,忽然跳出如下一条指令==>>汇编代码: rep stos dword ptr es:[edi]在网上查了相关资料显示:/************************************************************/lea edi,[ebp-0C0h]mov ...
阅读全文
posted @
2014-05-27 12:49
木椅
阅读(1851)
推荐(0)
C到汇编[1]
摘要:这篇文字解释这个问题:C语言函数调用在汇编语言是怎么实现的?栈模型很好的满足了函数调用的需求,以最简单的函数调用说明。 1 5: int add2(int a, int b){return a+b;} 2 0040B450 push ebp 3 0040B451 mov ...
阅读全文
posted @
2014-05-27 09:46
木椅
阅读(280)
推荐(0)