0

所以我正在尝试为游戏创建一个瞄准机器人,但我在这里遇到了一些麻烦,我怎样才能找到玩家群?如果我找到玩家群,那么我可以获得所需的所有信息,例如 X、Y 位置、当前金钱、弹药、健康、盔甲等……我为此使用 CheatEngine 6.4。

4

2 回答 2

4

术语“PlayerBase”指的是播放器对象的动态地址。健康、盔甲等变量通常是玩家类的成员变量。ammo 等变量也可以是武器类的成员变量,所以并不是所有的偏移量都相对于玩家对象的地址。但是您经常会在玩家对象中看到指向当前武器对象的指针。

创建游戏时,编译器创建指令以使用已定义的类按地址和相对偏移量访问变量。您的目标是在访问这些变量时复制游戏逻辑。

要查找您认为是玩家类成员的变量,请在作弊引擎中扫描它,然后在变量的地址上使用“查找访问权限”。这列出了访问该变量的所有指令。希望您会看到类似“mov eax [ebx+14c]”的内容。在这种情况下,ebx 中保存的地址是播放器对象的地址,而 0x14c 是健康变量的偏移量。这通常是一个动态地址,每次运行游戏时都会有所不同。接下来,您需要找到一个指向该地址的指针,您可以使用它始终指向正确的地址。为此,您将在代码中向后追溯,并希望看到 ebx 在当前函数内或调用堆栈中的前一个函数中从何处获取它的值。

我通常在每场比赛中都做同样的事情并将其简化为:找到一个良好的健康指针并删除最后一个偏移量。这是指向“玩家群”的指针

于 2017-12-03T20:07:16.450 回答
0

查找 Y 轴,查找未知初始值,浮点型。走上梯子,寻找增加的价值。向下走并减少价值,并继续这样做,直到找到您的 Y 地址。右键单击并按“ Memory View for this value”。剖析新的数据结构。现在你应该有结构了,你有一个内存地址数组,输入 Y 地址 - 8,现在你应该得到所有 XYZ,地址,现在输入顶部的 x 地址,然后“-” 4。顶部的地址现在是您的 PlayerBase。当你现在需要XYZ时,你取“ PlayerBase + XOffset”,X将在Base前面4个字节,因为你取了X - 4。Z将在X前面4个字节,所以PlayerBase + 8,Y将是“+” 0x0C . Cheat Engine显示地址后面的偏移量。

于 2016-01-21T08:32:42.187 回答