问题描述
我已经使用作弊引擎来获取游戏中玩家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})
解决方法
您要访问与模块条目偏移的地址。
调用get_process_by_name
会将指针返回到内存中的进程库,但是在这里您想将此指针偏移到进程的模块入口。
0x699FE50
是您与模块条目'SoTGame.exe'
的偏移量,因此查找并添加模块条目module_base
(通常为0x00400000)将在内存中产生正确的地址。
对于您而言,get_pointer(module_base + 0x699FE50)
应该可以解决问题。