如何使用Ollydbg在游戏中查找地址

时间:2019-04-17 18:58:20

标签: assembly reverse-engineering ollydbg

我试图找到XYZ的内存地址,以便可以在CE上使用它创建Teleport脚本,我已经通过使用Ollydbg找到了运动函数“ movementX”和“ movementY”,我想我可以使用Ollydbg以某种方式找到该函数或内存地址,但是我不确定从哪里开始,我通常只是使用cheatengine来查找我的所有值。

https://i.imgur.com/6YxXDXw.png

2 个答案:

答案 0 :(得分:1)

不需要OllyDBG查找坐标,实际上Cheat Engine是在几乎每种情况下查找变量的更好工具。

所以从Cheat Engine开始:

  1. 首先寻找Z
  2. 站在山上,楼梯上或梯子附近
  3. 使用“未知初始值”扫描浮点值
  4. 上去,扫描增加的图像
  5. 下去,扫描减少的东西
  6. 一遍又一遍,直到结果少于50个为止

将扫描结果减少到少于50个后:

  • 保持重新扫描,直到结果数量不变
  • 现在将它们全部添加到备忘表中

您的“正确”职位地址应该是可写的。

在备忘表中选择所有地址。尝试一次将所有变量更改为一个正负5.0f内的值。如果您的位置已更改,则该地址在您的表格中。现在要找到正确的地址,请使用分治法。选择一半的地址,更改它们。如果您的视图不变,请删除这一半。如果您的视图确实发生变化,请删除未选择的一半。您最终将只有一个正确的音高地址。检查X和Y,并确保它们在您四处走动时也会改变。

您现在有了可写的职位地址。发送到服务器上所有其他玩家的本地可写位置和角色坐标不一定是相同的地址。有时,他们使用不同的网络结构和本地信息。

输入正确的地址后,右键单击并执行“查找所写内容”,这将列出所有修改坐标的指令。这些指令将在“运动”功能内。使用“查找写入内容”与在任何其他调试器中设置写入断点相同,只是没有CE提供的出色输出。

我也建议您检查一下x64dbg,它几乎在所有方面都比ollydbg好。

答案 1 :(得分:0)

屏幕截图中的“ movementX”是字符串值而不是函数。如果要查找运动函数,请尝试:

  1. 首先使用内存扫描仪(例如作弊引擎)查找位置变量。
  2. 将调试器附加到该变量,以查找哪些代码行正在访问该变量(欺诈引擎具有用于该变量的内置调试器)。
  3. 找到的代码地址之一可能在您要查找的移动功能中,该地址可能在每次重新启动游戏时都会更改,因此请确保在某处记下其偏移量(Address-BaseAddress),以便您可以调试或反汇编。