为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法在Unix中更改另一个进程的环境变量?

有没有办法在Unix中更改另一个进程的环境变量?

慕码人2483693 2019-11-23 15:15:40
有没有办法在Unix中更改另一个进程的环境变量?在Unix上,有没有办法让一个进程可以改变另一个进程的环境变量(假设它们都是由同一个用户运行)?一般的解决方案是最好的,但如果没有,那么一个人是另一个人的孩子的具体情况怎么样?编辑:通过gdb怎么样?
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

通过gdb:

(gdb) attach process_id(gdb) call putenv ("env_var_name=env_var_value")(gdb) detach

这是一个非常讨厌的黑客攻击,当然应该只在调试场景的环境中完成。


查看完整回答
反对 回复 2019-11-24
?
UYOU

TA贡献1878条经验 获得超4个赞

你可能在技术上可以做到(见其他答案),但它可能对你没有帮助。

大多数程序都会期望在启动后无法从外部更改env变量,因此大多数人可能只是在启动时读取他们感兴趣的变量并基于此进行初始化。因此,之后更改它们不会产生任何影响,因为程序永远不会重新读取它们。

如果您将此作为一个具体问题发布,您应该采取不同的方法。如果只是出于好奇:好问题:-)。


查看完整回答
反对 回复 2019-11-24
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

基本上没有。如果你有足够的权限(root或其左右)并且在/ dev / kmem(内核内存)周围进行了调整,并且你对进程的环境进行了更改,并且之后进程实际上重新引用了环境变量(即进程)还没有拿过env var的副本并且没有使用那个副本),那么也许,如果你是幸运和聪明的,风向正确的方向吹,月亮的相位是正确的,也许,你可能会有所成就。

查看完整回答
反对 回复 2019-11-24
  • 3 回答
  • 0 关注
  • 360 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信