使用python从作弊引擎获取地址数据

问题描述

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

我想使用类似ReadWriteMemory的代码(带有我的改编的Git ReadMe的示例代码):

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。

解决方法

您要访问与模块条目偏移的地址。

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

对于您而言,get_pointer(module_base + 0x699FE50)应该可以解决问题。