MonkeyDev教程
准备工作(逆向开发环境搭建)
1.安装MonkeyDev
https://github.com/AloneMonkey/MonkeyDev/wiki/%E5%AE%89%E8%A3%85
2.Reveal安装与使用
https://www.jianshu.com/p/51c539f61ab0
破解:
defaults delete com.ittybittyapps.Reveal
3.Hopper安装(反编译,查看各个类的方法)
https://blog.csdn.net/skylin19840101/article/details/54669815
4.Logos语法介绍(Hook原代码)
http://iphonedevwiki.net/index.php/Logos
dumpdecrypted砸壳
第1步:链接iPhone
使用usbmuxd工具,将本地2222端口转发到iOS的22端口
python tcprelay.py -t 22:2222
ssh root@localhost -p 2222
(或者使用命令安装 brew install usbmuxd
iproxy 2222 22)
第2步:使用 ps 配合 grep 命令来找到微信的可执行文件
ps -e | grep WeChat
第3步:使用 Cycript 找到目标应用的 Documents 目录路径(Ctrl + D 来退出 cycript)
cycript -p WeChat
NSHomeDirectory()
第5步:将 dumpdecrypted.dylib 拷到 Documents 目录下
scp -P 2222 /Users/wangxiao/personal/iOS逆向/iOSReverse/dumpdecrypted/dumpdecrypted.dylib root@localhost:/var/mobile/Containers/Data/Application/05D0D9F5-37FB-408A-8B2E-8431BD5FC2C5/Documents
第6步:砸壳
cd到Documents目录
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/AE093B58-FC0A-4416-8268-8CD5C5C3142D/WeChat.app/WeChat
砸壳报错
dyld: could not load inserted library 'dumpdecrypted.dylib' because no suitable image found. Did find: dumpdecrypted.dylib: required code signature missing for 'dumpdecrypted.dylib'
原因:dumpdecrypted.dylib未签名
解决方法:ldid -S /var/mobile/Containers/Data/Application/05D0D9F5-37FB-408A-8B2E-8431BD5FC2C5/Documents/dumpdecrypted.dylib
第7步:将砸壳文件WeChat.decrypted拷贝到电脑
scp -P 2222 root@localhost:/var/mobile/Containers/Data/Application/05D0D9F5-37FB-408A-8B2E-8431BD5FC2C5/Documents/WeChat.decrypted /Users/wangxiao/personal/iOS逆向/iOSReverse/WeChat.decrypted
使用frida-ios-dump砸壳并生成ipa
第1步:iOS安装frida
1.iPhone 打开cydia 添加源: https://build.frida.re
2.打开刚刚添加的源 安装 frida
3.安装完成!检查是否工作可以在手机终端运行 frida-ps -U 查看
第2步:Mac安装frida
1.安装python: brew install python
2.安装wget: brew install wget
3.安装pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
4.安装frida
sudo pip install frida
5.配置frida-ios-dump环境
从Github下载工程:
sudo mkdir /opt/dump && cd /opt/dump && sudo git clone https://github.com/AloneMonkey/frida-ios-dump
安装依赖:
sudo pip install -r /opt/dump/frida-ios-dump/requirements.txt --upgrade
(PS:安装依赖如果失败换一换网络)
修改dump.py参数:
vim /opt/dump/frida-ios-dump/dump.py
找到这几行:
User = 'root'
Password = 'alpine'
Host = 'localhost'
Port = 2222
设置别名:
vim ~/.bash_profile
在末尾新增下面一段:
alias dump.py="/opt/dump/frida-ios-dump/dump.py"
使用:
iproxy 2222 22
dump.py QQ
Hook结束打包生成ipa文件
在Xcode中,选择企业证书 command+shift+i
生成release版app文件,找到Products目录下.app文件,Show In Finder,双击createIPA.command
文件,会生成ipa文件。
问题记录
-
Monkey工程添加Podfile后,报错
`Xcodeproj doesn't know about the following attributes {"inputFileListPaths"=>[], "outputFileListPaths"=>[]} for the 'PBXShellScriptBuildPhase' isa`
解决办法:sudo gem install cocoapods --pre
参考:https://www.jianshu.com/p/f089fae248c1
-
运行抖音报错
LLVM Profile Error: Failed to write file “default.profraw”: Operation not permitted
解决办法:打开AntiAntiDebug.m,取消注释这行代码
rebind_symbols((struct rebinding[1]){{"sysctl", my_sysctl, (void*)&orig_sysctl}},1);
参考:https://github.com/AloneMonkey/MonkeyDev/issues/44
- 安装class-dump,/usr/bin不可写的问题
解决方法:
- 打开Terminal,输入
mkdir ~/bin
,在当前用户根目录下创建一个bin目录; - 把class-dump给拷贝到这个目录里,并赋予其可执行权限:
mv /path/to/class-dump ~/bin; chmod +x ~/bin/class-dump;
- 打开~/.bash_profile文件:
vi ~/.bash_profile
,在文件最上方加一行:export PATH=$HOME/bin/:$PATH
,然后保存并退出(在英文输入法中依次按下esc和:(shift + ;,即冒号),然后输入wq,回车即可); - 在Terminal中执行
source ~/.bash_profile
参考:https://blog.csdn.net/majiakun1/article/details/52064435
-
logify.pl在安装完Theos后页安装完,
执行logify.pl命令需要配置环境变量
1、设置环境变量,可以每次在终端上运行export THEOS=/opt/theos
export PATH=/opt/theos/bin/:$PATH
2、可以#vi /etc/profile
,在这个文件中加上以上命令,重新打开终端,环境变量就生效了。这样就无需每次要去终端里export环境变量了。
参考:https://www.cnblogs.com/iamonion/archive/2017/07/30/7259288.html