首页
社区
课程
招聘
请教一个ida反汇编时的问题?
发表于: 2006-3-14 19:14 4326

请教一个ida反汇编时的问题?

2006-3-14 19:14
4326
在ida中反汇编,有时候它会不显示数据类型。
如:
mov     [esp+10h], 10h
这句话很容易被理解成mov byte ptr [esp+10h], 10h。

而我在od中跟踪,正确结果却是
mov     DWORD ptr [esp+10h], 10h

请问有没有ida选项,可以在反汇编时明确地把数据类型标出来?

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

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 238
活跃值: (326)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
2
IDA不会出现如你所说的情况,如果你发现出现你上面的代码,也就表示这个 [esp+10h]已经在这个函数头中定义过了,不过你没有让他正确的显示,将光标放在 [esp+10h]上,按 k (stack variable)键,如果 [esp+10h]为红色,先按 p (Hexadecimal) 键(在你的机器上,键可能不同,因为我根据自己的习惯从新定义过键值,而原来是什么键我记不住了) 再按 k 键,即可正确显示: [esp + 2 + var_4] (根据压栈的深度,可能不一样),而你在函数头可以看到 var_4 = dword ptr -4 ,这样的定义,因为前面有了定义,所以这条指令就不会在有 dword ptr 这样的指引:
mov dword ptr [esp + 2 + var_4], 10h
而是显示
mov [esp + 2 + var_4], 10h
或是你的显示方法
mov [esp + 10h], 10h
IDA 处理这些问题是非常严格的,不会出现二意性。
2006-3-16 09:23
0
游客
登录 | 注册 方可回帖
返回