MacTools 是一款现代化的 macOS 原生应用程序,专为安全研究人员、逆向工程师和开发者设计。它提供了一站式的可视化界面,用于自动化管理 macOS 应用的动态库注入(Dylib/Framework Injection)流程,并集成了多种实用的二进制分析与处理工具。
这是 MacTools 的核心模块,旨在将繁琐的命令行注入流程及其自动化。它不仅仅是简单的文件复制,通过内置的 Mach-O 解析引擎,能够智能地处理注入过程中的每一个环节。
功能特性:
- 智能路径处理:自动处理 App 包结构,将库文件安全复制到
Contents/Frameworks目录,若目录不存在会自动创建。 - 二进制补丁:直接解析并修改目标 App 主程序的 Load Commands,插入
LC_LOAD_DYLIB指令。 - 权限与签名修复:
- 自动检测文件权限,必要时请求管理员权限(Sudo)进行操作。
- 移除文件隔离属性(Quarantine/Gatekeeper),防止系统拦截。
- 注入完成后执行 Ad-hoc 重签名(Codesign),确保 App 修改后仍能正常启动。
使用指南:
- 启动 MacTools,等待应用列表加载完成(支持列表模式和网格模式切换)。
- 在左侧导航栏选择你想要注入的目标应用程序,可以使用顶部的搜索框快速定位。
- 确保顶部选项卡处于 “注入” 模式。
- 将编译好的
.dylib动态库或.framework文件夹拖拽到右侧的“注入配置”区域(支持一次性拖拽多个文件)。 - 点击底部的 “开始注入” 按钮。
- 如果目标 App 需要更高权限(如系统应用或从 App Store 下载的应用),弹窗提示时请输入管理员密码。
- 观察下方“执行终端”的日志输出,等待提示“注入全部完成”。
- 现在你可以直接从 Finder 或 Launchpad 启动修改后的 App。
工具箱模块集合了一系列针对 Mach-O 二进制文件(可执行文件、动态库)的常用逆向分析工具。
操作对象: 工具箱支持两种操作模式:
- 直接拖拽:将任意文件(.o, .dylib, .deb, 可执行文件)拖拽到工具箱顶部的区域。
- 应用联动:如果在左侧选择了 App,工具箱默认会将该 App 的主程序作为操作对象。
功能列表与使用:
-
生成 Tweak 项目 (智能模式)
- 用途:基于动态库快速构建 Theos 开发环境与 Frida 调试脚本。
- 深度分析:工具会自动解析二进制文件中的 Objective-C 类结构。
- 代码生成:
- Tweak.xm:自动生成包含所有识别类的 Logos Hook 模版,省去手动编写
%hook的繁琐工作。 - trace.js:自动生成配套的 Frida 追踪脚本。该脚本已内置好所有类的方法 Hook 逻辑,可直接用于追踪该动态库的所有方法调用与参数返回。
- Tweak.xm:自动生成包含所有识别类的 Logos Hook 模版,省去手动编写
-
签名信息检查
- 用途:查看二进制文件的代码签名详情、Team ID、Entitlements 权限声明。
- 操作:点击按钮,详细信息将输出到底部的控制台日志中。
-
修改 TeamID
- 用途:用于绕过基于 Team ID 的校验机制(如某些 App 检测插件是否由同一开发者签名)。
- 操作:点击按钮,在弹出的对话框中输入新的 10 位 Team ID(如
A1B2C3D4E5),确认后将原地修改二进制文件。
-
ldid 签名
- 用途:为二进制文件进行伪签名(Pseudo-signing),使其能在越狱设备或允许的调试环境下运行。
- 操作:点击即执行
ldid -S命令。
-
头文件提取
- 用途:从无源码的 App 中还原 Objective-C 类头文件,辅助分析类结构与方法。
- 操作:点击按钮,工具会解析二进制文件,并在文件同级目录下生成一个
_Headers文件夹,其中包含所有还原出的.h文件。
-
简单混淆 (Strip)
- 用途:剥离二进制文件中的调试符号表(Symbol Table)。
- 操作:点击按钮,工具会移除为了调试而保留的函数名和变量名信息,减小文件体积并增加静态分析难度。
- UI 框架: SwiftUI (macOS)
- 核心逻辑: Swift 5.0+
- 底层操作: C 语言
- 直接操作 Mach-O Load Command
- 实现
insert_dylib核心逻辑 - 封装命令行工具调用接口
- 架构模式: MVVM (Model-View-ViewModel)
- macOS 12.0 或更高版本
- Xcode 13.0+ (用于编译)
- 打开DMG安装软件:
- 给应用授权环境,设置->隐私->app管理
- 点击运行
版本核心:AI 助手升级 - 新增 Kimi K2.5 模型支持
更新日期:2026年1月19日
版本核心:注入管理器 - 自由移除已注入的动态库
v2.4 带来了期待已久的 注入移除功能,让您完全掌控应用的注入状态:
-
智能扫描:
- 自动检测应用中所有已注入的动态库
- 支持识别
@executable_path、@rpath、@loader_path等多种路径格式 - 清晰展示每个注入库的完整路径和类型标签
-
灵活移除:
- 支持单选或多选批量移除
- 一键全选/取消全选
- 移除后自动重新签名,确保应用可正常运行
-
安全可靠:
- 仅移除用户注入的第三方库,不影响系统库
- 操作前自动检测权限,需要时请求管理员授权
- 详细的操作日志,每一步都清晰可见
- 选择目标应用
- 点击红色的「管理注入」按钮
- 勾选要移除的注入库
- 点击「移除所选」
- 优化了注入检测的准确性
- 改进了错误提示信息
更新日期:2026年1月15日
版本核心:AI 智能助手降临、全能文件/图片分析 模型增加:模型增加十几种随意更换选择
-
图片分析能力:
- 支持直接 拖拽图片 到对话框,或者通过附件按钮上传。
- AI 可以识别截图内容、分析 UI 布局、OCR 提取文字,甚至解释复杂的架构图。
-
项目级文件感知:
- 文件投喂:支持将代码文件、文本稳当直接拖入编辑器进行分析。
- 文件夹深度扫描:支持拖入整个项目文件夹,AI 将自动扫描目录结构,理解项目上下文,为您提供全局视角的代码建议和重构方案。
- 智能上下文管理:内置 Token 计数与优化算法,确保在大文件分析时依然保持流畅响应。
- 优化了对话框的交互体验,支持平滑滚动。
- 修复了若干 UI 布局问题。
- 智能隐藏模式:
- 点击关闭按钮时,应用将自动从 Dock 栏隐藏并进入“静默常驻”状态。
- 顶部菜单栏图标常驻,点击“打开主界面”可瞬间带回 Dock 图标并激活窗口。
- 远程注入:
- 新增对远端 .zip 压缩格式 Framework 的全自动解压注入支持。
- 实现了从下载、解压到路径权限申请的“一键式”自动化流,大幅降低分身制作门槛。
- 权限系统优化:
- 重构了管理员鉴权逻辑,确保 TouchID 指纹采集与系统密码验证的切换极其稳健。
- 清理了多处硬编码逻辑,优化了应用启动时的 FDA(全盘访问权限)检测速度。
- 优化了菜单栏 Tray 在多显示器环境下的弹窗定位表现。
核心功能升级
- 在线资源库 (Online Library):
- 集成官方插件库,支持一键下载注入。
- 自定义仓库:支持添加任意 GitHub 公开仓库 (
User/Repo),自动同步与持久化。 - 远程加载:支持通过直链 (
URL) 直接下载并注入动态库。
- 应用分身 (App Cloning):
- 新增“制作分身”功能,支持为任意 App 创建独立运行的副本 (Coexisting Bundle)。
- 自动处理 Bundle ID 修改与签名剥离,确保分身共存。
- 应用瘦身 (App Slimming):
- 逆向工具箱新增“瘦身”工具,一键提取当前系统架构 (如 arm64),剔除冗余架构,大幅减小体积。
体验与交互优化
- 实时文件监听:应用列表现在会自动感知
/Applications目录的变化(安装/删除/重命名),实现秒级自动刷新,无需手动重启。 - 内置使用教程:
- 新增“用法”窗口,以图文并茂的方式引导新用户使用各项功能。
- 注入界面新增“地球图标”作为在线库入口。
本工具仅供安全研究、调试分析及学习交流使用。 请勿将本工具用于任何非法用途(如制作作弊软件、侵犯版权软件的分发等)。 使用者需自行承担因不当使用本工具而产生的一切法律责任与后果。
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。