6

如何在 Ubuntu Linux 下使用 python 写入另一个进程的地址空间?我的尝试:

1) 使用虚拟文件 /proc/$PID/mem 并寻找地址。我已成功使用它来读取内存,但尝试写入会导致 IOError:

fd=open("/proc/"+pid+"/mem","r+")
fd.seek(address,0)
fd.write("ABC")

输出:

IOError: [Errno 22] Invalid argument

2) 尝试按照其他线程中的建议使用 python-ptrace 库。但是,我找不到好的文档或示例代码。

注意:这不是权限问题,以 root 身份运行会产生相同的行为。

4

1 回答 1

2

在这里找到了解决方案:http: //tito.googlecode.com/svn-history/r2/trunk/draft/fakefs.py

它使用 ctypes 包来加载 libc,然后使用带有 POKEDATA 选项的 libc.ptrace 来写入字节。

于 2013-01-23T17:48:32.640 回答