如何找到带偏移量的指针 [ecx+eax*4](地址偏移量?)
How to find pointer w/ offset [ecx+eax*4] (address offset?)
我看过这个话题: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?
这是我的情况:我正在尝试获取 Red Faction: Guerrilla(gfwl 版本)的当前弹药指针
我看到当我加载另一个存档文件时这个弹药的地址被改变了。所以我使用 "Find out what writes to this address" 作为弹药指针(加载另一个保存文件后不再工作)
然后我加载另一个保存文件以查看它写入指针的内容:
结果是偏移量为[ecx+eax*4]
的指针
所以我做了一个这样的指针
ecx=00C1B988(地址00C1B988保存值:ECX=00C1B994)
EAX*4= 我不知道如何使用它,所以我只是输入:E71*4
但是当我加载另一个存档文件时它仍然不起作用。我卡在E71*4,E71应该换什么?我什至尝试搜索值 E71(或 3697),但我似乎无处可去。
通常当您看到 ecx+eax*4 时,它正在索引到一个数组中。 ECX 指向数组,EAX 是元素#,4 是元素的大小。通常,当您看到 4 或 8 时,这是因为它是一个指针数组,这是 x86 上指针的大小。
您看到的不是 encryption/obfuscation/anticheat。这就是面向对象 programming/C++ 被编译成程序集的方式。
您正在创建的指针链对您不起作用,解决方案是获取 weapon/player 对象的地址,以便您可以向其中偏移以获取弹药的地址。为此,您需要:
- 手动查找另一个指针
- 使用指针扫描仪找到另一个指针
- 模式扫描+挂钩并将地址拉出寄存器
如果这可能是某种混淆,您可以通过挂钩指令并获取它的值来轻松获取 EAX 的值。
我看过这个话题: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?
这是我的情况:我正在尝试获取 Red Faction: Guerrilla(gfwl 版本)的当前弹药指针
我看到当我加载另一个存档文件时这个弹药的地址被改变了。所以我使用 "Find out what writes to this address" 作为弹药指针(加载另一个保存文件后不再工作)
然后我加载另一个保存文件以查看它写入指针的内容: 结果是偏移量为[ecx+eax*4]
的指针所以我做了一个这样的指针
ecx=00C1B988(地址00C1B988保存值:ECX=00C1B994)
EAX*4= 我不知道如何使用它,所以我只是输入:E71*4
但是当我加载另一个存档文件时它仍然不起作用。我卡在E71*4,E71应该换什么?我什至尝试搜索值 E71(或 3697),但我似乎无处可去。
通常当您看到 ecx+eax*4 时,它正在索引到一个数组中。 ECX 指向数组,EAX 是元素#,4 是元素的大小。通常,当您看到 4 或 8 时,这是因为它是一个指针数组,这是 x86 上指针的大小。
您看到的不是 encryption/obfuscation/anticheat。这就是面向对象 programming/C++ 被编译成程序集的方式。
您正在创建的指针链对您不起作用,解决方案是获取 weapon/player 对象的地址,以便您可以向其中偏移以获取弹药的地址。为此,您需要:
- 手动查找另一个指针
- 使用指针扫描仪找到另一个指针
- 模式扫描+挂钩并将地址拉出寄存器
如果这可能是某种混淆,您可以通过挂钩指令并获取它的值来轻松获取 EAX 的值。