首页
社区
课程
招聘
[旧帖] [求助]反汇编过程中,对代码段中的数据处理和vc自带反汇编输出asm的问题 0.00雪花
发表于: 2011-10-11 10:17 1409

[旧帖] [求助]反汇编过程中,对代码段中的数据处理和vc自带反汇编输出asm的问题 0.00雪花

2011-10-11 10:17
1409
1、反汇编中,如果代码段中嵌套有数据,反汇编一般会怎样处理?
2、写了一个简单的C程序,用vc编译器自带的输出asm中,有如下代码:
_buffer$ = -32
_i$ = -36
_j$ = -40
_m$ = -44
_n$ = -48
_z$ = -52
_y$ = -56
_v$ = -60

后面的代码中mov        DWORD PTR _i$[ebp], 0,类似于_i$[ebp]是什么意思?
3、对debug和release版本的,vc自带输出asm,debug版的开始时push ebp,mov ebp,esp,这个比较好理解,release版本的直接sub esp, 56        ,有点不太理解

谢谢解答

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 435
活跃值: (1317)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
2
1.主流反汇编引擎都是递归下降式,从ep开始开始分析,当然强大的引擎会有一些jump table识别,xrefs识别啊等等智能的分析,因此,假如代码段内有数据,是可以分辨出来的

2.
_buffer$ = -32
_i$ = -36
_j$ = -40
_m$ = -44
_n$ = -48
_z$ = -52
_y$ = -56
_v$ = -60

这个是变量在栈帧中的布局,=后面的-x就是相对ebp偏移,所以后面的mov  DWORD PTR _i$[ebp], 0就相当于mov  DWORD PTR [ebp-36], 0

3.push ebp,mov ebp,esp是标准的栈指针构建指令,后面的直接sub esp是开启了fpo(栈指针省略)优化后的结果,这个在项目设置里可以禁用掉
2011-10-11 11:30
0
游客
登录 | 注册 方可回帖
返回
//