希望为Mount& amp; Blade游戏系列主要用于练习。基本上是中世纪征服,5~王者各有约18-30~其他全国人民代表大会领主。游戏跟踪你与他们的关系,但不是以非常有效,直观的方式。
我想制作能够跟踪游戏中的各种变量并显示它们的东西,以及其他一些功能。我可以使用作弊引擎等轻松找到变量的偏移等,但我不确定python是否能够自己收集/显示这些变量。
我之前被告知Python缺乏一种直观的方式来“操纵”(我的用法,我将其定义为'监控')内存。那是准确的吗?
答案 0 :(得分:1)
如果你正在寻找一种从Python中访问另一个程序内存的方法,那么stdlib肯定没有内置的东西。但这并不意味着它不可能。您始终可以使用与作弊程序相同的机制。
您想要做什么是高度依赖平台的。
在Mac上,您要么使用Mach vm_read
及相关函数,要么作为调试器附加并使用ptrace
API。
在Linux上,您要么通过proc
文件系统访问VM,要么作为调试器附加并使用ptrace
API。
在Windows上,您希望使用ReadProcessMemory
及相关功能,或者附加为调试器......我认为在这种情况下您实际上仍然使用ReadProcessMemory
。
除了访问proc
文件系统(您可以使用常规mmap
或常规读取/搜索/等等函数来自os
),您将要使用{ {1}}(或者,在Windows上,ctypes
)访问本机函数,或编写C扩展模块。
在每个平台上,您都必须使用提升的权限运行,这当然意味着不同平台上的不同内容。
没有人会写一个答案,显示所有5种不同的机制和两种访问方式......但是如果你搜索你想要的那个,你就会找到它。 (至少我知道有两种不同的使用win32api
的方法和使用vm_read
的两种不同方法的答案。)
但是我为其中一个答案写的here's a proof of concept;我相信提问者把它拿起来,分叉,并进一步改进。