首页
社区
课程
招聘
[原创]简单C程序逆向分析,送给和我一样菜的朋友
发表于: 2021-8-16 17:21 7327

[原创]简单C程序逆向分析,送给和我一样菜的朋友

2021-8-16 17:21
7327

CODE很简单:

#include <stdio.h>

#include <stdlib.h>

int  Function(int x,int y)

{

return x+y;


}


void  main()


{

int a=10;

int b=20;

Function(a,b);

printf("\na=%d,a=%x,b=%d,b=%x",a,&a,b,&b);

system("pause");

}


逆向分析记录:

CALL 00401010   此句执行把下一行地址也就是004011D8压入堆栈,并且跳到00401010继续执行

SUB ESP,8     提升堆栈0X8个地址,用于存放变量,此时的堆栈地址为ESP=0012FF84,此句执行结束以后堆栈ESP=0012FF7C

push 14        将参数0X14压栈,也就是20入栈,执行以后ESP-4,ESP=0012FF78

PUSH 0A        将参数0XA压栈,也就是10入栈,执行以后ESP-4,ESP=0012FF74

MOV DWORD PTR SS:[ESP+C],0A   将0A也就是10放入ESP+c的内存单元,不改变堆栈,此时的ESP+C=0012FF80 

MOV DWORD PTR SS:[ESP+8],14   将0X14也就是20放入ESP+8的内存单元,不改变堆栈,此时的ESP+8=0012FF7C 

CALL 00401000  调用自写函数FUn,地址为00401000,同时将下一行0040102C亚入堆栈,,执行完毕以后ESP-4=0012FF70 跳转到00401000继续执行




[注意]APP应用上架合规检测服务,协助应用顺利上架!

收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
004011D8压入堆栈

这句话是什么意思?
在图片里,哪里可以提现?
为啥是这个地址?
2021-8-17 11:18
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
004011D8

004011DB

?
2021-8-17 12:12
0
雪    币: 299
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
ADD ESP 0x28
栈顶就保存的返回地址
2021-8-17 15:18
0
雪    币: 220
活跃值: (493)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
 其实你用vs单步调试, 打开汇编窗口就行了.....
2021-8-17 20:49
0
雪    币: 283
活跃值: (74)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
蓝色的OD。。。这审美不一般呀
2021-8-18 01:06
0
雪    币: 299
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
lolikon [em_13] 其实你用vs单步调试, 打开汇编窗口就行了.....
那个跟踪效果没有OD舒服
2021-8-18 17:28
0
雪    币: 299
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
juckerpp 蓝色的OD。。。这审美不一般呀[em_13]
就喜欢蓝色
2021-8-18 17:28
0
雪    币: 1487
活跃值: (14662)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
9
你这OD的颜色。。。我肝已经开始痛了
2021-8-18 17:49
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码