用Python显示其他程序的变量?

2024-04-25 08:32:20 发布

您现在位置:Python中文网/ 问答频道 /正文

寻找使个人使用的挂载和刀片游戏系列主要是练习小程序。基本上是中世纪的征服,5个国王和大约18-30个其他npc领主。这个游戏可以追踪你和他们的关系,但不是以一种非常有效、直观的方式。你知道吗

我想做一些东西来跟踪游戏中的各种变量并显示它们,还有一些其他的功能。我可以用cheat engine等很容易地找到变量的偏移量等,但是我不确定python如何,甚至是否能够自己收集/显示这些。你知道吗

以前有人告诉我,Python缺乏一种直观的“操纵”内存的方法(对于我的用法,我更愿意将其定义为“监视”)内存。准确吗?你知道吗


Tags: 方法内存程序功能游戏关系方式直观
1条回答
网友
1楼 · 发布于 2024-04-25 08:32:20

如果您正在寻找从Python中访问另一个程序内存的方法,那么stdlib中肯定没有内置任何内容。但这并不意味着不可能。你可以使用作弊程序调用的相同机制。你知道吗

您到底想做什么是高度依赖于平台的。你知道吗

  • 在Mac上,您可以使用Machvm_read和相关函数,也可以附加为调试器并使用ptraceapi。

  • 在Linux上,您可以通过proc文件系统访问VM,也可以附加为调试器并使用ptraceapi。

  • 在Windows上,您希望使用ReadProcessMemory和相关函数,或者附加为调试器,在这种情况下……我认为您实际上仍然使用ReadProcessMemory

除了访问proc文件系统(您可以使用mmap中的常规mmap或常规read/seek/etc.函数)之外,您还需要使用ctypes(或者在Windows上,win32api)来访问本机函数,或者编写一个C扩展模块。你知道吗

在每个平台上,您都必须以提升的权限运行,这当然意味着在不同的平台上有不同的事情。你知道吗

没有人会写一个答案,显示所有5种不同的机制和访问它们的两种方式…但如果你这样搜索一个你想要的,你会找到它。(至少我知道有两种不同的使用vm_read的方法和两种不同的使用ReadProcessMemory的方法。)

但是here's a proof of concept是我为其中一个答案写的;我相信提问者会把它捡起来,分叉,并进一步改进它。你知道吗

相关问题 更多 >