-2

我正在尝试计算一个指向变量的多级指针,但在第三级我的偏移量是'rcx + r9 * 8'。

完整说明:

140BD82D4 - 4A 8B 04 C9   - mov rax,[rcx+r9*8]

我通常使用偏移量在计算器中从我所在的当前指针的地址中扣除它,但在那种情况下,我真的不知道该偏移量是什么意思。

我将不胜感激任何正确方向的提示。

4

1 回答 1

0

看起来您正在手动反转 x64 进程的指针。

rcx+r9*8

当您看到这种类型的操作数时,您可以假设 RCX 是数组的地址,r9 是数组的索引,8 是每个元素的大小。您还可以假设它是一个指针数组,考虑到 x64 上的指针大小为 8 个字节。如果您正在反转游戏,并且指针指向玩家对象的成员变量,那么 RCX 可能是实体列表,在这种情况下是玩家对象指针的数组。

遗憾的是,除非您在此处放置一个钩子或在代码中向后追溯并找到 r9 的值,否则您将无法获得 r9 的值。但是因为您可能刚刚找到了 player 数组,所以 r9 的值可能不再重要,因为您找到了更好的东西,即实体列表。

如果是这种情况,请找到 RCX(实体列表)的指针,然后您可以像老板一样遍历所有玩家对象。也可以是虚函数表或其他随机数组

于 2018-02-05T05:02:13.617 回答