美文网首页iOS 逆
MonkeyDev教程

MonkeyDev教程

作者: chic_wx | 来源:发表于2018-10-22 12:13 被阅读545次

    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

    相关文章

      网友评论

        本文标题:MonkeyDev教程

        本文链接:https://www.haomeiwen.com/subject/yzawzftx.html