使用python从Cheat Engine获取地址处的数据

Posted

技术标签:

【中文标题】使用python从Cheat Engine获取地址处的数据【英文标题】:Get data at address from Cheat Engine with python 【发布时间】:2020-08-16 22:27:10 【问题描述】:

我已经使用作弊引擎来获取我的玩家在游戏中的 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。

【问题讨论】:

【参考方案1】:

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

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

在您的情况下,get_pointer(module_base + 0x699FE50) 应该可以解决问题。

【讨论】:

你从哪里得到module_base

以上是关于使用python从Cheat Engine获取地址处的数据的主要内容,如果未能解决你的问题,请参考以下文章

Windows 逆向使用 Cheat Engine 工具进行指针扫描挖掘关键数据内存真实地址 ( 指针扫描 )

cheat engine如何设置中文版

[Cheat Engine]多级指针查找

GDB 是不是支持演绎内存扫描,例如 Cheat Engine?

如何从Cheat Engine保护Flash游戏?

cheat engine怎么使用?谁能给我做个具体的教程?从使用方法到如何取游戏的基址,希望能够讲的详细点。