.data 部分中的问号数据在 IDA 中是什么意思



我使用 IDA 来分析 EXE,并发现一些令人困惑的东西。.data部分应包含初始化的数据,因此每个位置都应具有如下所示的内容:

var_A db 0h
var_B dw 12h

但是我得到很多带有问号的条目。

例如
.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中的问号有不同的含义?

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 字节。

最新更新