You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下修改任意二进制可执行文件在活动监视器的进程名方案咨询

macOS 二进制可执行文件静态修改进程名方案

前置说明

本方案为静态修改二进制文件实现活动监视器自定义进程名的效果,等效于C代码中修改argv[0],无需手动逆向工程,全流程使用通用命令行工具完成。

依赖工具

所有工具均为macOS系统自带,无需额外安装特殊软件:

  • objdump:用于读取二进制的字符串表
  • xxd:用于二进制和十六进制文本的互相转换
  • codesign:系统自带的代码签名工具

操作步骤

  • 第一步:定位原始进程名的存储偏移
    运行命令导出二进制的C字符串段内容:
    objdump -s --section=__cstring 目标可执行文件路径
    从输出中找到和原始进程名完全匹配的字符串,记录对应的十六进制偏移地址。注意要确认该字符串没有被其他逻辑复用,避免修改后引发其他功能异常。
  • 第二步:确认新进程名长度
    优先使用长度小于等于原始进程名的新名称,无需调整二进制段结构,操作更稳定。如果需要使用更长的名称,需要先扩容__cstring段,操作复杂度更高。
  • 第三步:替换二进制中的字符串
    先将二进制转成可编辑的十六进制文本:
    xxd 目标可执行文件 > tmp.hex
    打开tmp.hex,找到之前记录的偏移位置,将对应十六进制值替换为新进程名的ASCII编码,新名称末尾补充00作为字符串结束符,多余的原名称位置也统一用00填充。
    替换完成后将十六进制文本转回二进制:
    xxd -r tmp.hex > 自定义名称的可执行文件
  • 第四步:重新签名二进制
    macOS的代码签名机制会校验二进制完整性,修改后需要重新签名才能正常运行:
    codesign -f -s - 自定义名称的可执行文件
    如果原二进制带有特殊权限声明,需要先导出权限文件,签名时加上--entitlements 权限文件路径参数。

效果验证

直接运行修改后的可执行文件,打开活动监视器查看对应进程的名称,或运行ps aux查看COMMAND列,确认已替换为自定义名称。

注意:如果目标二进制内部存在硬编码的进程名设置逻辑,而非读取argv[0]作为进程名,需要按照相同方法找到硬编码的字符串位置替换即可。

内容的提问来源于stack exchange,提问作者Tommy A.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:06:07