本帖最后由 niucaidi 于 2021-7-10 16:17 编辑
逆向一个简单C语言程序中的函数嵌套调用并观察其调用约定的区别
- 拖入OD中观察指定函数的汇编代码并逆向出其C语言源码
- 程序打包在附件中
- Call的地址:0x00401138
- 以下是范例:
[C] 纯文本查看 复制代码 #include <stdio.h>
int plus3(int l, int i)
{
return l + i;
}
int __stdcall plus2(int q, int w, int e)
{
return q + w + e;
}
int __fastcall plus(int a,int b,int c,int d,int e)
{
int x = a; //ebp-0x4
int y = b; //ebp-0x8
int z = plus2(x,y,c); //ebp-0xc
int t = plus3(x, y); //ebp-0x10
return plus3(z, t);
}
int main()
{
int a[] = { 1,3,4,6,7 };
int b = plus(a[0], a[1], a[2], a[3], a[4]);
略......
return 0;
}
CallingConvention.rar
(23.12 KB, 下载次数: 30)
求评分求热心! |