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
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
架构