【发布时间】:2021-11-08 01:17:22
【问题描述】:
我看过这个话题: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 version) 的当前弹药指针
我看到这个弹药的地址在我加载另一个存档时发生了变化。所以我使用“找出写入这个地址的内容”作为弹药指针(加载另一个保存文件后不再工作)
然后我加载另一个保存文件以查看它写入指针的内容: 结果是偏移量为[ecx+eax*4]的指针
所以我做了一个这样的指针
ecx=00C1B988(地址00C1B988保存值:ECX=00C1B994)
EAX*4= 我不知道如何使用它,所以我只输入:E71*4
但是当我加载另一个保存文件时它仍然不起作用。我卡在 E71*4,我应该为 E71 更换什么?我什至尝试搜索值 E71(或 3697),但似乎我无处可去。
【问题讨论】:
-
每次运行游戏时EAX都会改变吗?通常,当您看到 ecx+eax*4 时,它正在索引一个数组。 ECX 指向数组,EAX 是元素#,4 是元素的大小。经常看到 4 或 8 是因为它是一个指针数组,这就是指针的大小
-
@GuidedHacking: 谢谢回复 :) 我认为游戏的开发者试图让它无法使用作弊引擎,我从来没有成功找到指针。 EAX 会随着不同的存档游戏和不同的游戏进度而变化(如果我不开始另一个存档游戏并且不继续执行任务,则 EAX 会保留)。所以我认为问题不在于EAX更改,而是游戏开发者使用了一种方法使其无法找到指针。但幸运的是,我发现这个游戏有一些模组,我可以用任何我喜欢的方式作弊:gaming.stackexchange.com/a/336026/198960
-
这不是反作弊,而是面向对象编程的工作原理以及 C++ 的编译方式
标签: cheat-engine