如何找到带有偏移量的指针[ecx + eax * 4](地址偏移量?)

时间:2018-07-07 05:34:47

标签: cheat-engine

我已经看到了以下主题:How to find a point with offset eax+ebx*4

eax will be the pointer value to look for
ebx*4 will be the offset (ebx is the offset in an array with elements of 4 bytes long)
so:
ebx=0 : offset=0
ebx=1 : offset=4
ebx=2 : offset=8
ebx=3 : offset=c
ebx=4 : offset=10

但是我还是不明白如何确定ebx?

这是我的情况:我正在尝试获取“红色派系:游击队”的当前弹药指针

我看到加载另一个保存文件时此弹药的地址已更改。因此,我对弹药指针使用“查找写入该地址的内容”(在加载另一个保存文件后不再起作用) Find out what writes to this address

然后我加载另一个保存文件,以查看它写入指针的内容: 结果是指针的偏移量为[ecx + eax * 4]

[ecx+eax*4]

所以我做了这样的指针

ecx = 00C1B988(地址00C1B988保留值:ECX = 00C1B994)

EAX * 4 =我不知道该如何使用,所以我只说:E71 * 4

E71*4

但是当我加载另一个保存文件时它仍然不起作用。我卡在E71 * 4上,应该怎么代替E71?我什至尝试搜索值E71(或3697),但似乎无济于事。

1 个答案:

答案 0 :(得分:1)

通常,当您看到ecx + eax * 4时,它正在索引到数组中。 ECX指向数组,EAX是元素#,而4是元素的大小。通常,当您看到4或8时,是因为它是一个指针数组,并且是x86上指针的大小。

您看到的不是某种加密/模糊处理/抗热。这就是面向对象的编程/ C ++如何被编译成汇编的方式。

您创建的指针链对您不起作用,解决方案是获取武器/玩家对象的地址,以便您可以偏移到其中以获得弹药的地址。为此,您需要:

  • 手动找到另一个指针
  • 使用指针找到另一个指针
  • 扫描仪将地址钩住并从寄存器中拉出

如果这有点令人困惑,则可以通过钩住指令并获取其值来轻松获得EAX的值。