在不执行整个python脚本的情况下从/proc/pid/mem读取



我只需打开/proc/pid/mem:就可以从python脚本中读取其他进程内存

reader = open(f'/proc/{pid}/mem', 'rb')

然后从随机位置读取:

reader.seek(address, 0)
memory_content = reader.read(length)

一切都很好,但事实上,要打开/proc/pid/mem,我必须修改整个python脚本。当然,为了理智起见,我不想那样做。我有什么选择?

  • 如果我理解正确,我就不能sudo chmod /proc/pid/mem让每个人都能从进程内存中读取(如果我错了,请纠正我(
  • 我无法从非根python脚本中open具有根权限的某个文件(请再次更正,如果我错了(

也许我可以创建某种到/proc/pid/mem的硬链接,它看起来像一个不需要拥有root访问权限的文件?

或者,最简单的方法可能是创建一个代理程序,该程序将从具有root权限的实际python脚本中运行,从/proc/pid/mem读取,并以某种方式与之进行跨进程交互?

您需要代理。

  • 您的硬链接方法不起作用,因为权限保持不变
  • 即使你可以让每个人都能读到proc/mem,你会从中得到什么?从安全角度来看,最好让整个脚本以root身份运行,并希望您做对了。这方面至少有一个变化。通过打开记忆让每个人都能阅读,你可以让任何人从记忆中获得秘密,让它对所有人都是免费的。所以绝对不是这个

如果你最终完成了代理,如果你想在Python中完成,你当然需要sudo来运行,但这会起作用。我已经用C编写了这样的助手,并使它们成为suid词根,但这是一个偏好问题。

最新更新