汇编中数组的索引?
逆向工程
拆卸
部件
2021-06-18 10:35:53
1个回答
通常,在遍历数组时,我们可以找到以下几行汇编代码:
mov [base_address_of_array + array_index * size_of_an_item_in_array], edx
在您的情况下,我的猜测是该数组在堆栈上(这就是为什么您将其esp
作为数组基地址的一部分找到。然后,您还有一个偏移量为esp
is 0Ch
(十进制为 12)。所以, 数组位于esp + 0Ch
. 然后,eax
是索引,4
是数组中项目的大小(可能是 4 个字节的整数)。
如果我们查看整个 CFG,我会将其翻译回 C,如下所示:
int array[4];
for (int i = 0; i < 4; ++i)
array[i] = i;
注意:我认为 CFG 中的蓝色弧线会回到loc_401381
.
其它你可能感兴趣的问题