【问题标题】:Change process name on MacOS of arbitrary binaries在任意二进制文件的 MacOS 上更改进程名称
【发布时间】:2021-12-15 17:49:37
【问题描述】:

我希望能够在 MacOS 中设置任意二进制文件的进程名称(显示在活动监视器中)。最好,这不需要任何手动逆向工程。

为了澄清,我不是要求在运行时更改它。而是设置一个脚本来更改另一个可执行文件的代码。

(类似于如何在 C 代码中更改 argv[0]

【问题讨论】:

  • 不清楚你想要实现什么。您能否以/bin/date 作为二进制示例并阐明您的需求?
  • @Philippe 很难使用 /bin/date 作为示例,因为它的持续时间不够长,无法在活动监视器中查看。但是,以/bin/sleep 为例,sleep 5 将持续足够长的时间,以使活动监视器能够识别进程名称为“sleep”的新进程。我希望能够编辑类似于/bin/sleep 的可执行文件的二进制文件,以使该名称成为我喜欢的任何名称,例如“睡眠”->“新进程”。
  • 更改 argv[0] 后,您仍然可以在 Activity Monitor 中看到原始二进制名称。
  • @Philippe 知道什么决定了进程的名称吗?

标签: macos reverse-engineering executable


【解决方案1】:

您可能会为某些应用程序实现它,但会产生相关的后果。

首先,让我们考虑一下活动监视器中的名称。它是 shell 脚本的可执行文件的名称,它是一个 Bundle 或显示的 Bundle 名称。

因此,要更改名称,您基本上需要更改文件名或 Info.plist 中的记录。

这两种方法都不适用于 Apple 提供的应用程序,除非您禁用 SIP(​​如果这可能适合您 - 一切都是可行的)。

谈到非 Apple 应用程序,您可以更改它们的名称或 Info.plist 记录,但这会导致它们的代码签名无效。您将需要手动允许此类应用在您的 Mac 上运行并克服所有 Apple 弹出窗口。

没有可用于实现此目标的 API。你要么使用 hacky 方式,要么需要改变你想要拥有的东西。

【讨论】:

  • 谢谢。你绝对是正确的,这不是一个好主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 2020-01-23
  • 2011-08-30
  • 1970-01-01
相关资源
最近更新 更多