iOS 逆向之工作记录

一、 获取ipa包 步骤

  • 越狱设备获取 ipa
    • 越狱设备
    • Mac 安装 frida
    • Mac 安装 usbmuxd - 用于 USB 连接 设备
      • 注意 iproxy 4567 22 关联mac 与 usb设备的端口
      • 注意 ssh 的手机的默认 ssh 密码为 alpine
    • 使用 frida 的脚本 获取 ipa 包

安装 MonkeyDev

连接越狱设备

WiFi

  • 设备连接 WiFi
  • 设备查看 WiFi的 ip
  • 命令行输入 ssh root@172.28.2.159
  • 验证授权 authenticity 输入 yes
  • 输入密码 alpine 默认密码, 故为了安全需要修改默认密码

USB

  • usbmuxd 安装
  • iproxy 4567 22 关联mac 与 usb设备的端口 , 默认 usb 设备的端口为 22, Mac 电脑写一个端口 4567, 不要太随意, 否则会遇到端口冲突.
  • ssh 连接 mac 自定义的端口 ssh -p 4567 root@127.0.0.1
  • 密码同上

frida 安装

mac 安装

python 版本 安装

sudo pip install frida

报错

ImportError: No module named 'zlib

解决方案:

brew install zlib

软链接 , 查看本地的 zlib 版本号 x.x.x

ln -s /usr/local/Cellar/zlib/x.x.x/include/* /usr/local/include
ln -s /usr/local/Cellar/zlib/x.x.x/lib/* /usr/local/lib
ln -s /usr/local/Cellar/zlib/1.2.11/include/* /usr/local/include
ln -s /usr/local/Cellar/zlib/1.2.11/lib/* /usr/local/lib

安装 frida-ios-dump

frida-ios-dump - python3版本

  • git clone https://github.com/AloneMonkey/frida-ios-dump.git
  • pip3 install -r requirements.txt --upgrade 下载

问题 1.

Unable to start server: Error binding to address: Address already in use

查看 端口 ps -e | grep frida

参考

特别注意: 此处的 ipa包为解密后的, 不是从App Store直接下载的

class-dump

  • Github 安装 class-dump 源码
  • 打开 class-dump.xcodeproj , 编译 class-dump
  • 将需要导出头文件的ipa包, 解压出TargetApp.app
  • class-dump 根目录 执行 class-dump --arch arm64 ../ipa-dump/Payload/iQiYiPhoneVideo.app -H -o ../ipa-dump/Payload/Headers 的命令 , 得到 如下图的头文件.
  • Reveal 辅助查找需要的头文件

Hopper 使用

这里仅针对解密后的 ipa

  • 官网下载 Hopper 体验版
  • ipa包 解压, 找到Playload中的.app包, 显示包内容, 找到可执行文件, 如爱奇艺的iQiYiPhoneVideo
  • 使用 Hopper 打开此二进制文件, 选择arm64架构