MonkeyDev 安装教程与报错解决
iOS 非越狱逆向 · 非官方社区归档

面向中文 iOS 逆向开发者整理的 MonkeyDev 资料归档:安装教程、Xcode 12/13/14/15 兼容报错修复,以及 Frida / Theos / Objection 等替代方案对比。

🛠 原生 Xcode 调试 📱 非越狱逆向 🔧 Xcode 14/15 修复 📚 社区非官方归档
定位说明(必读):本页为第三方社区资料整理 / 非官方归档,与 MonkeyDev 原作者 AloneMonkey 无任何隶属或授权关系。MonkeyDev 以 MIT 等开源协议发布,本页仅作技术学习用途的链接与经验汇总,所有操作请遵守开源协议与当地法律法规。项目原始地址:github.com/AloneMonkey/MonkeyDev。

一、MonkeyDev 是什么

MonkeyDev 是 AloneMonkey(刘培庆,圈内称“庆哥”)在 iOSOpenDev 基础上开发的 iOS 逆向框架,2017 年发布,支持 Xcode 8 及以上,用于在非越狱手机上对第三方 App 进行逆向分析、代码注入、反反调试,并集成 Cycript、Reveal 等能力。它最大的价值是提供原生 Xcode 编译 + 调试体验——你不需要切换到 Theos 的黑盒环境,直接在熟悉的 Xcode 里断点、看变量。

作者约在 2022 年前后停止维护更新,因此在新版 Xcode(12/13/14/15)上会出现若干兼容性报错,需要手动修复(见下文第三节)。项目目前仍可在 GitHub 获取,是学习 iOS 逆向的经典入门工具。

二、安装教程(Xcode 选择 + 一键 / 手动)

方式一:官方一键脚本(快速,可能遇网络问题)

sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-install)"

脚本会自动完成克隆仓库、编译安装、配置 Xcode 插件。安装完成后重启 Xcode,在 File → New → Project 中即可看到新增的 MonkeyDev 模板分类。

方式二:手动编译安装(推荐,更透明)

git clone https://github.com/AloneMonkey/MonkeyDev.git
cd MonkeyDev/bin
sudo ./md-install
安装前必做:先确保 Xcode 路径正确,否则会报 xcode-select: error: tool 'xcodebuild' requires Xcode。
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Xcode-beta 路径为 /Applications/Xcode-beta.app/Contents/Developer。

常见安装前置坑

三、常见报错与解决(Xcode 12/13/14/15)

以下为 Xcode 12 及以上版本集中出现的报错,按出现频率整理。

1. Embedded-Device.xcspec not found

Xcode 新版本模板路径变更。打开 MonkeyDev/bin/md-install,把 specificationFile 行中的 IDEiOSSupportCore.ideplugin/Contents/Resources/Embedded-Device.xcspec 改为 XCBSpecifications.ideplugin/Contents/Resources/Embedded-Device.xcspec,保存后重新 sudo bash md-install。

2. libstdc++ 报错

新版 Xcode 移除 libstdc++。执行:git clone https://github.com/devdawei/libstdc-.git,进入目录 sudo bash ./install-xcode_11+.sh 把 libstdc++ 补回对应 Xcode 版本。

3. EXC_BAD_ACCESS(fishhook 导致)

旧版 fishhook 不兼容 iOS 15。下载 facebook/fishhook,将 fishhook.h、fishhook.c 复制到 /opt/MonkeyDev/templates/MonkeyAppMac.xctemplate/fishhook/ 与 /opt/MonkeyDev/templates/MonkeyAppLibrary.xctemplate/fishhook/ 覆盖替换,确认新 fishhook.c 含 iOS 15 支持后重新运行。

4. Unable to install xxx

首次能装、注入 Dylib 后再次编译无法安装,是重签名脚本残留 Plugins 签名信息(_CodeSignature / SC_Info)。在重签名脚本中加:rm -rf "${TARGET_APP_PATH}/_CodeSignature" 与 rm -rf "${TARGET_APP_PATH}/SC_Info",或手动删除目标 App 包内对应文件后可反复编译安装。

5. Dylib 签名错误

monkeytest dylib 的 Build Settings 签名与主项目不一致。将 dylib 子项目的签名设置与主项目统一即可。

6. Hook 代码(Logos)未生效

MonkeyDev 在保存 .xm 文件时才会把 Logos 语法转换为 .m。编写后按 Command+S 保存,并确认生成的同名 .m 文件已包含对应 Hook 代码。

四、Xcode 版本兼容矩阵

Xcode 版本MonkeyDev 状态主要需要处理的问题
Xcode 8–11原生支持基本开箱即用,libstdc++ 自带
Xcode 12–13需修路径Embedded-Device.xcspec 路径变更,改 XCBSpecifications
Xcode 14.x需多处修复libstdc++ 缺失、fishhook EXC_BAD_ACCESS、Unable to install、Dylib 签名
Xcode 15+勉强可用在上述基础上需确保 fishhook 含 iOS 15+ 支持,整体越来越难维护

五、替代 / 升级方案对比

MonkeyDev 停更后,社区常用的动态分析与越狱/非越狱逆向工具如下,可按场景组合:

工具定位适合场景地址
Frida动态插桩框架运行时 Hook、函数追踪、脚本化分析frida.re
ObjectionFrida 封装无越狱移动端安全测试,开箱即用命令sensepost/objection
Theos越狱 tweak 开发编写注入型 Tweak、Logos 语法theos.dev
frida-ios-dumpIPA 砸壳AloneMonkey 出品,配合 Frida 脱壳AloneMonkey/frida-ios-dump

六、逆向分析时的本地小工具(免上传)

分析过程中常需对抓到的数据做 Base64 解码、JSON 格式化、时间戳转换。以下工具100% 在浏览器本地运行、文件/文本零上传,适合处理内部敏感数据,安全合规:

免责声明:本页面为技术学习用途的非官方社区归档,内容来自公开网络资料与社区经验整理,可能存在时效性偏差(MonkeyDev 已停更)。操作前请备份数据、遵守开源协议与当地法律法规。本页与 AloneMonkey 及任何第三方均无隶属关系,所有外部链接均指向其原始公开仓库。