MonkeyDev概览
iOS逆向开发期间,其中常会涉及到动态调试和写tweak插件,其中有个很好用的工具就是:MonkeyDev
MonkeyDev
- 是什么:iOS逆向开发的成套工具
- 概述:iOSOpenDev的升级版 = 集成XCode和其他各种工具的更强的集成环境
- 一句话描述:一个基于Xcode模块技术快速开发越狱和非越狱插件的工具,可以自动完成逆向中的固定步骤,一键集成非越狱插件,大大提升逆向分析和开发效率
- 形式:Xcode的一个插件,可以新建MonkeyDev的相关不同类型的项目,做相关的逆向开发
- 典型的用途
- 砸壳出ipa后,用MonkeyDev+Xcode去动态调试
- 用MonkeyDev去写(iPhone越狱后的)tweak插件
- 主要包含模块
Logos Tweak
- 使用theos提供的logify.pl工具将.xm文件转成.mm文件进行编译,集成了CydiaSubstrate,可以使用MSHookMessageEx和MSHookFunction来Hook OC函数、C/C++函数或指定地址
CaptainHook Tweak
- 使用CaptainHook提供的头文件进行OC函数的Hook,以及属性的获取
Command-line Tool
- 可以直接创建运行于越狱设备的命令行工具
MonkeyApp
- 自动给第三方应用集成Reveal、Cycript和注入dylib的模块,支持调试dylib和第三方应用,支持Pod给第三方应用集成SDK,只需要准备一个砸壳后的ipa或者app文件即可
MonkeyPod
- 将自动开发的非越狱插件制造成Pod以供其它人通过pod的方法来使用
MonkeyAppMac
- 针对Mac逆向开发的模块,可以自动集成substitute,注入以及符号还原工作
MonkeyDev vs iOSOpenDev
- MonkeyDev vs iOSOpenDev
- MonkeyDev比iOSOpenDev)多出一些更加有用的参数:
- MonkeyDevDevicePassword
- 默认值:
alpine
- 默认值:
- MonkeyDevTheosPath
- 默认值:
/opt/theos
- 默认值:
- MonkeyDevKillProcessOnInstall
- 默认值:
SpringBoard
- 默认值:
- MonkeyDevDevicePassword
- MonkeyDev比iOSOpenDev)多出一些更加有用的参数:
官方资料
- 官方资料
- Github
- AloneMonkey/MonkeyDev: CaptainHook Tweak、Logos Tweak and Command-line Tool、Patch iOS Apps, Without Jailbreak.
- wiki
- 代码
- MonkeyDev/bin/md at master · AloneMonkey/MonkeyDev
export PATH=/opt/MonkeyDev/bin:$MonkeyDevTheosPath/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin:$PATH
- MonkeyDev/bin/md at master · AloneMonkey/MonkeyDev
- 相关
- AloneMonkey/MonkeyDev-Xcode-Templates: MonkeyDev-Xcode-Templates
- Blog
- Github