首页 > 解决方案 > 使用python从Cheat Engine获取地址处的数据

问题描述

我使用作弊引擎来获取我的玩家在游戏中的 X 坐标的地址和真实地址;盗贼之海。不幸的是,当我尝试通过在线描述的方法(即单击“找出访问此地址的对象”)找到指针时,游戏崩溃了。由于 Address 和 RealAddress 似乎没有改变(分别为 SoTGame.exe+699FE50 和 7FF6EA32FE50),有没有办法访问这个地址的值?

我想使用类似 ReadWriteMemory 的东西(来自 Git 自述文件的示例代码,带有我的改编):

from ReadWriteMemory import ReadWriteMemory

rwm = ReadWriteMemory()

process = rwm.get_process_by_name('SoTGame.exe')
process.open()

#health_pointer= process.get_pointer(0x004e4dbc, offsets=[0xf4])
x_pointer = process.get_pointer(0x699FE50)

#health = process.read(health_pointer)
x = process.read(x_pointer)

print({'x': x})

打印当前返回 0,而作弊引擎显示的数字非常不同。

标签: pythoncheat-engine

解决方案


您想访问具有模块条目偏移量的地址。

调用get_process_by_name将返回指向内存中进程基址的指针,但在这里您要将此指针偏移到进程的模块条目。这0x699FE50是您与模块条目的偏移量'SoTGame.exe',因此查找并添加您的模块条目module_base(通常为 0x00400000)将导致内存中的地址正确。

在你的情况下,get_pointer(module_base + 0x699FE50)应该做的伎俩。


推荐阅读