我有以下数据:
.data:004305FC word_4305FC dw 1583h
.data:004305FC
.data:004305FE word_4305FE dw 35B6h
.data:00430600 dw 6835h
.data:00430602 dw 6553h
.data:00430604 dw 6351h
.data:00430606 dw 23F5h
.data:00430608 dw 6845h
.data:0043060A dw 6344h
.data:0043060C dw 6823h
.data:0043060E dw 2342h
.data:00430610 dw 2474h
...
此外,我对访问数据的代码进行了以下反汇编:
...
mov eax, [ebp+Variable_1]
xor ecx, ecx
mov cx, word_4305FE[eax*2]
...
mov eax, [ebp+Variable_1]
xor edx, edx
mov dx, word_4305FC[eax*2]
...
它看起来像另一个数组中的数组。我对么?如果不是,你认为数据结构是什么?如果它是单个数组,为什么要通过 2 个不同的“头”word_4305fc
和word_4305FE
?
谢谢你。
添加:
以下是对以下评论的回应。谢谢你们,非常感谢你们的意见!我真的很感激它和一般的 RE 社区。我觉得我的问题需要澄清一下。我确实意识到这是一个数组。我也清楚地看到这Variable_1
是数组的索引。此外,我可以看到迭代。然而,这不是我的问题。我真正想要的是澄清或可能的解释。我如何才能区分这个数组是否确实是更复杂的数据类型?为什么编译器选择从 2 个不同的角度引用这种数据类型:使用 2 个全局变量word_4305fc
和word_4305FE
?有什么具体原因吗?它是否表示更复杂的数据类型?