【发布时间】:2012-11-28 06:04:08
【问题描述】:
我正在尝试使用 python 和 python ptrace 来读取外部进程的内存。我需要完全在 python 中工作,我一直在尝试读取和打印 linux 中进程的内存。
例如,我尝试了以下代码,它不断给我 IO 错误:
proc_mem = open("/proc/%i/mem" % process.pid, "r")
print proc_mem.read()
proc_mem.close()
大多数情况下,我只是想反复转储进程的内存并寻找随时间的变化。如果这是正确的方法,那么我的问题是什么?或者有没有更合适的方法来做到这一点?
【问题讨论】:
-
这似乎在unix.stackexchange.com/questions/6301/…得到了详细的回答
-
似乎尝试读取 /proc/%i/mem 文件并不是我真正想要的方式。所以我猜我的问题的另一半。假设我可能想写入进程内存页面,是否有合适的方法在 python 中执行此操作?我正在使用 ptrace 来启动和停止进程。
-
link: 给出的这个演示程序似乎与我正在尝试做的事情密切相关,尽管我还不能完全复制它。 ptrace 中有一个函数可以在内存映射中搜索字节字符串。
-
在我的 丰富 空闲时间里仍在研究这个问题。所以让我更清楚地回答 larsks,我不想只是阅读它,我还需要能够在 RAM 中触摸它。所以我可以使用 ptrace 附加到进程、启动和停止等,但我想知道如何进入内存空间并翻转一些位。