MonkeyDev教程

0.937字数 1083阅读 5636

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文件。

问题记录

  1. 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

  1. 运行抖音报错

    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

  1. 安装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

  1. 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

推荐阅读更多精彩内容