在 Cheat Engine 中找到 14 个地址的正确健康值

Find correct health value in Cheat Engine of out 14 addresses

我试图在游戏中找到正确的健康偏移量,我的问题是我找到了 14 个地址,当我更改我的健康地址时,这些地址会发生变化。我已经尝试更改健康值并更新 10 次并按下 'Next Scan' 但我无法获得比这 14 个地址更低的地址。

我是否需要对所有这 14 个地址进行指针扫描,或者是否有任何简单的方法来检测其中一个是正确的?

您必须反复试验并检查每个地址。逆向工程就是反复试验。您正在寻找灵丹妙药,但没有。

如果您已经知道偏移量,您可以右键单击每个地址并执行 "find what accesses",有时 "find what writes",您会得到一个涉及这些地址的指令列表以及用于到达那里的偏移量.如果偏移量与您的 "known" 偏移量不匹配,则忽略该地址。

如果变量是您作为客户端具有写入权限的变量,例如您的姓名字符串,您可以采用分而治之的方法。将所有地址添加到您的 table。 Select 一半,按回车键并更改您的名字。如果您在 GUI 中的名称发生变化,那么您的地址在选择中,因此您将删除另一半。然后你再次分而治之,这种技术在每一步都消除了 50% 的地址。如果你的名字没有改变,那么删除你选择的那些,并对另一半地址做同样的技术。

我要与您分享的最后一个技术是使用 ReClass 或其他工具,它可以为您提供 RTTI 或 运行-Time Type Information。当您执行 "find what accesses" 时,您将获得播放器对象的地址和相对偏移量。将 ReClass 附加到进程中,输入播放器对象的地址。虚拟方法 table 指针(偏移量 0x0)将与 RTTI 一起显示,它会告诉您 class 的名称及其父 classes。请注意,这只有在使用 Visual Studio 编译的二进制文件和仍然嵌入 RTTI 的情况下才有可能。

总之,逆向工程没有立竿见影的效果。技巧是有的,但只有经验才能让你获得更快逆转所需的洞察力。随着你的进步,它会变得更容易。