OS X:附加到正在运行的进程并读取其环境变量

发布于 2024-12-10 22:10:11 字数 622 浏览 1 评论 0 原文

是否可以(如果可以,如何?)读取正在运行的进程的环境变量。更具体地说,我关心的是进程本身设置的环境变量(使用 setenv() 或类似的),而不是进程启动时设置的一般用户会话环境变量。

我认为 DTrace 将是完成这项工作的工具,但这是我在网上找到的唯一解决方案(来自 此邮件列表主题)似乎特定于 Solaris,因为该脚本无法在我的 Mac 上执行。

也许 Instruments 以某种方式公开了此功能,但我只是还没有找到它?

我也尝试过 Tasks Explorer,这是一个不错的小应用程序,它显示了包括环境变量在内的进程信息,但它不显示由过程本身,这就是我所追求的。

任何帮助将不胜感激!

Is it possible (and if so, how?) to read a running process's environment variables. To be more specific, I am concerned with environment variables set by the process itself (using setenv() or similar), not the general user session environment variables set when the process is launched.

I figured that DTrace would be the tool for this job, but the only solution I've found online (from this mailing list thread) appears to be specific to Solaris because the script fails to execute on my Mac.

Perhaps Instruments exposes this functionality somehow and I just haven't found it yet?

I have also tried Tasks Explorer, which is a nice little application, and it shows process info including environment variables, but it does not show any environment variables set by the process itself, which is what I'm after.

Any help would be much appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风蛊 2024-12-17 22:10:11

我想你可以尝试下一种方法:

  1. 将 dylib 注入正在运行的进程中。
  2. 从注入的 dylib 读取环境变量。
  3. 通过 IPC(RPC、共享内存等)将环境变量发送到您的应用程序中。

顺便说一句,我计划将这种类型的环境变量探索添加到我的任务资源管理器中。

接下来的链接将帮助您进行注入:

I suppose you could try next way:

  1. Inject you dylib into running process.
  2. To read environment variables from injected dylib.
  3. Via IPC (RPC, Shared Memory, etc.) send Environment variable into you application.

By the way, I have a plan to add this type of environment variables exploring into my Tasks Explorer.

Next links will help you with injection:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文