我想在游戏中找到一个功能。当您穿过游戏地图时,您将被“传送”到特定xyz坐标。我以前有这个函数的内存地址,但是从那以后游戏打了补丁就不行了。另外,这个值是别人给我的,所以我自己也没有找到。但是,我确实构建了DLL注入程序。
我找到了玩家的xyz坐标和安全xyz坐标的指针和偏移值。所以,这是拼图的最后一块。
我猜你可以以某种方式使用 Ollydbg 来找到这个函数,但我不确定从哪里开始,我通常只是cheatengine用来找到我的所有值。
我想在游戏中找到一个功能。当您穿过游戏地图时,您将被“传送”到特定xyz坐标。我以前有这个函数的内存地址,但是从那以后游戏打了补丁就不行了。另外,这个值是别人给我的,所以我自己也没有找到。但是,我确实构建了DLL注入程序。
我找到了玩家的xyz坐标和安全xyz坐标的指针和偏移值。所以,这是拼图的最后一块。
我猜你可以以某种方式使用 Ollydbg 来找到这个函数,但我不确定从哪里开始,我通常只是cheatengine用来找到我的所有值。
如果您可以在 Ollydbg 下启动程序(许多游戏客户端都有检测软件是否在调试器下运行并以一种或另一种方式终止的代码),您可以在玩家坐标所在的内存地址上设置硬件断点.
这个断点可能会经常触发,每次你的玩家移动时,所以你应该让它成为一个“记录”断点,当它被触发时记录当前地址,但允许游戏继续。在四处移动并穿过几何图形后,您可能会有一些经常触发的内存地址(当您移动时),还有一些仅触发几次(当您穿过并重新定位时)。如果您知道您的功能应该是什么样子,那么当您围绕这几个位置进行分解时,您可能会认出它。
另一种可能性是获取 IDA 的免费版本,使用它来分析 .exe 文件,然后使用交叉引用功能来查找引用特定内存位置的位置。这样做的优点是,即使可执行文件具有反调试器代码,它也可以工作,但如果可执行文件不直接访问内存位置,您将找不到任何东西。这可能会发生,例如,如果 xyz 坐标是更大结构的一部分,则软件会在某处存储指向结构开头的指针,并且仅通过该指针访问坐标。
第三种方法,如果您有补丁工作的原始代码,将尝试识别代码中不常见的字节序列(例如,如果它在某处使用特定常量)但不依赖于内存地址,并在新的二进制文件中搜索相同的字节序列,希望编译器在新的可执行文件中生成相同的代码。
因此,teleport如果我正确理解您,您正在寻找该功能。
您拥有的地址显然不起作用,因为二进制文件已更改。在您的情况下,我会做的是获取二进制文件的先前版本,您拥有该函数的地址。
在 IDA/Olly 中打开旧的二进制文件并观察该函数(Ctrl+G或G并粘贴地址)。查看指令操作码,并尝试从中获取模式。只是模式的一个例子,但你最终应该得到类似的东西:D9 05 B4 ?? 66 4C D1 ?? ?? ??。
如果你不知道这个概念,或者不知道如何创建模式,你应该谷歌“内存模式扫描仪”,你可以找到很多关于它的主题。
由于 IDA 可以搜索字节,您所要做的就是在 IDA 中打开新的二进制文件并“搜索字节序列”,粘贴您的字节模式,如果您的模式有效并且您很幸运,您将拥有一些结果,其中之一将是teleport最有可能的功能。

我尝试的另一种方式是:你说你有address + offset坐标的组合。在作弊引擎中添加该内存位置,并观察它在作弊引擎中的访问位置,并希望幕后没有什么古怪的地方,您应该获得一个读取/写入坐标的位置列表,其中一个可能是您的teleport你追求的功能。

如有必要,不要忘记重新设置地址。