概述
MonkeyDev的功能主要如下:
- 可以使用Xcode开发CaptainHook Tweak、Logos Tweak 和 Command-line Tool,在越狱机器开发插件,这是原来iOSOpenDev功能的迁移和改进。
- 只需拖入一个砸壳应用,自动集成class-dump、restore-symbol、Reveal、Cycript和注入的动态库并重签名安装到非越狱机器。
- 支持调试自己编写的动态库和第三方App
- 支持通过CocoaPods第三方应用集成SDK以及非越狱插件,简单来说就是通过CocoaPods搭建了一个非越狱插件商店。
MonkeyDev wiki: https://github.com/AloneMonkey/MonkeyDev/wiki
安装
安装最新的theos
1
sudo git clone --recursive https://github.com/theos/theos.git /opt/theos
安装ldid
1
brew install ldid
安装MonkeyDev
1
sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-install)"
更新MonkeyDev1
sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-update)"
参考https://github.com/AloneMonkey/MonkeyDev/wiki/%E5%AE%89%E8%A3%85
使用
安装完成之后,打开Xcode,新建一个项目,滑动到最下方可以看到MonkeyDev提供的模块:
非越狱下注入Frida
1.准备好砸壳后的app
从pp助手、iphonecake等下载砸壳后的应用,也可以在其他越狱的手机上砸壳
2.创建MonkeyApp项目
新建一个MonkeyApp项目,然后填写Product Name,对于非越狱设备可以不用管Target App,如果是越狱设备的话可以在Target App填写目标App的名字或者bundle id,工具将会自动使用frida-ios-dump提取ipa文件
这里创建的项目是monkeydev_test,得到如下结构:
monkeydev_testDylib这个是将被注入目标App的动态库,自己要hook的代码可以在monkeydev_testDylib.m文件里面写,默认项目写了一些Demo代码,支持OC runtime的HOOK,C函数的fishhook。还支持theos logtweak的写法! 直接写在monkeydev_testDylib.m文件文件即可。
Config 这个是cycript的一些脚本下载以及methodtrace配置代码。
LLDBTools 这个是用于LLDB调试的代码,比如po pviews()。
AntiAntiDebug 这个里面是反反调试的代码。
fishhook 这个是自动集成的fishhook模块。
创建的项目已经自动集成了RevealServer.framework和libcycript.dylib,如果选择Release编译的话是不会集成的。
3.拖入编译
(1) 右键项目里面的TargetApp文件夹Show in Finder,把ipa文件拖入下面的位置(当然app文件夹也可以的):
(2) 从FridaGadget.dylib下载动态库增加到App最后的Copy Files里面:
(3) 将FridaGadget.dylib链接到MonkeyDev注入动态库的依赖里面
编译后运行app, 如果启动日志有: Frida: Listening on 127.0.0.1 TCP port 27042 就集成成功: