我使用IDA来分析EXE并找到令人困惑的东西。 .data
部分应包含初始化数据,因此每个位置都应包含以下内容:
var_A db 0h
var_B dw 12h
但我收到很多带问号的条目。 e.g。
.data:00000001400F1680 qword_1400F1680 dq ? ; DATA XREF: sub_14004F8B0+8Er
.data:00000001400F1680 ; sub_1400539D0+12Aw ...
.data:00000001400F1688 qword_1400F1688 dq ? ; DATA XREF: sub_1400539D0+F5w
.data:00000001400F1688 ; sub_1400539D0+FCr
.data:00000001400F1690 qword_1400F1690 dq ? ; DATA XREF: sub_1400539D0+C0w
.data:00000001400F1690 ; sub_1400539D0+C7r
据我所知,x86程序集中的?
表示未初始化数据。但这是在.data
部分!他们真的没有初始化,或者IDA db/dw/dd/dq
中的问号有不同的含义吗?
答案 0 :(得分:0)
IDA Pro将未初始化的值显示为“?”。 '?'当.data节的虚拟大小大于.data节的原始大小时,.data节会出现标记。 大于virtual_address('。data')+ raw_size('。data')的地址显示为'?'分数。
db / dw / dd / dq在IDA Pro中具有不同的含义。 IDA Pro分析组装代码并设置位置类型。 db / dw / dd / dq表示引用该地址的指令分别使用1/2/4/8字节。