python - 使用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,而作弊引擎显示的数字非常不同。
解决方案
您想访问具有模块条目偏移量的地址。
调用get_process_by_name
将返回指向内存中进程基址的指针,但在这里您要将此指针偏移到进程的模块条目。这0x699FE50
是您与模块条目的偏移量'SoTGame.exe'
,因此查找并添加您的模块条目module_base
(通常为 0x00400000)将导致内存中的地址正确。
在你的情况下,get_pointer(module_base + 0x699FE50)
应该做的伎俩。
推荐阅读
- reactjs - 我如何“深度链接”来响应 Web 组件,即使它们是隐藏的?
- javascript - react-select 上未显示选项
- html - 在链接中垂直对齐
- pip - 如何检查 pip 是否已安装在 Mac 上
- masstransit - 来自请求客户端的 Masstransit 不一致异常
- azure - 使用并行处理在 S3 或 Azure 中连接小于 1MB 的文件。解决方案应该是可扩展的
- ios - 如何更改整个应用程序的 tintColor?SwiftUI
- r - 检查系统命令是否在 R 中完成
- performance - 对于索引产品属性,更多的短文本字段与更少的字段和更多的单词
- qt - 如何仅以最少的内容将小部件打印到 PDF?