Python:在linux下写入另一个进程的内存

标签 python linux address-space

如何在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 身份运行会产生相同的行为。

最佳答案

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

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

关于Python:在linux下写入另一个进程的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14449114/

相关文章:

c# - 如何检查 exe 是否设置为 LARGEADDRESSAWARE

linux-kernel - 系统调用期间将数据复制到内核空间

python - 如何用 Pandas 计算协方差矩阵

javascript - Jquery ajax 发布请求不起作用

python - 在 Django Rest Framework 中找不到资源时返回自定义 404 错误

linux - tcpdump 单行​​输出

linux - 内核线程如何只为它们自己请求页面?

python - 在数据框的每一列中查找数据类型

linux - 使用linux命令查找并删除多个文件

python sys.stdin.read() 不需要的拆分