mcpField
R
rev-ios-dump

rev-ios-dump

github.com/p4nda0s安全2.3k1.2k 次安装25 周前更新
代码仓库

关于 rev-ios-dump

rev-ios-dump 是面向 iOS 安全分析与逆向工程的技能,借助 Frida 从越狱设备运行中的应用进程导出解密后的二进制文件,供静态分析等后续工作使用。

主要功能

  1. 01从运行进程转储解密二进制
  2. 02生成解密后的 IPA 文件
  3. 03转储应用包中的加密框架
  4. 04检查转储结果是否已解密

适用场景

  1. 01将 Mach-O 导入 IDA、Ghidra 或 Hopper
  2. 02提取 Objective-C 头文件
  3. 03搜索二进制中的敏感字符串
  4. 04为 Frida Hook 或符号分析准备文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/p4nda0s/reverse-skills --skill rev-ios-dump

安装后在 Claude Code 中输入/rev-ios-dump确认已加载。

详细介绍

rev-ios-dump - iOS 应用解密(砸壳)

从越狱设备中转储已解密的 iOS 应用二进制文件,用于安全分析和逆向工程。


概述

通过 App Store 分发的 iOS 应用使用 Apple 的 FairPlay DRM 加密。要进行静态分析(IDA/Ghidra/Hopper),必须先在运行时解密二进制文件,这通常称为“砸壳”(转储壳)。此技能使用 Frida 对运行中的进程进行插桩,并从内存中转储已解密的 Mach-O。


前置条件

要求详情
越狱的 iOS 设备已启用 SSH 访问
frida-server已在设备上安装并运行
Python 3在主机上
frida + frida-toolspip3 install frida frida-tools
USB 或网络访问与设备建立 SSH 连接
验证 frida-server 是否正在运行
# Check frida-server on device via SSH
ssh mobile@<device_ip> "ps aux | grep frida-server"

# If not running, start it
ssh mobile@<device_ip> "/usr/sbin/frida-server -D &"

# Verify from host
frida-ls-devices
frida-ps -H <device_ip>

工具:frida-ios-dump

仓库:https://github.com/P4nda0s/frida-ios-dump

安装
git clone https://github.com/P4nda0s/frida-ios-dump.git
cd frida-ios-dump
pip3 install -r requirements.txt

# Build the TypeScript agent (required before first run)
npm install --ignore-scripts
npx frida-compile dump.ts -o dist/dump.js

注意:此版本使用基于 TypeScript 的 Frida Agent。运行 dump.py 前必须先编译 dist/dump.js。


分步工作流

步骤 1:识别目标应用的 Bundle ID

在设备上使用以下任一方法:

# Method 1: List running apps via Frida
frida-ps -H <device_ip> -a

# Method 2: SSH into device and check
ssh mobile@<device_ip> "find /var/containers/Bundle/Application -name Info.plist -exec plutil -p {} \; 2>/dev/null | grep CFBundleIdentifier"

或者在设备上使用 CocoaTop,识别正在运行的进程及其 Bundle ID。

步骤 2:确保目标应用正在运行

目标应用必须在设备上运行。frida-ios-dump 会附加到活动进程,以转储已解密的内存。

步骤 3:执行转储
cd frida-ios-dump

python3 dump.py -H <device_ip> -u mobile -P <password> <bundle_id>

参数:

标志说明
-H设备 IP 地址
-uSSH 用户名(通常为 mobile)
-PSSH 密码(新越狱设备通常为 alpine)
<bundle_id>目标应用的 Bundle ID(例如 app.ish.iSH)

示例:

python3 dump.py -H 192.168.1.100 -u mobile -P alpine app.ish.iSH
步骤 4:验证输出

转储成功后,会在当前目录中生成一个 .ipa 文件:

ls -la *.ipa

# Unzip to inspect
unzip -o <app_name>.ipa -d dumped_app/

# Verify decryption — cryptid should be 0
otool -l dumped_app/Payload/<AppName>.app/<BinaryName> | grep -A4 LC_ENCRYPTION_INFO

如果显示 cryptid 0,则表示二进制文件已成功解密。


故障排除

错误原因解决方法
Failed to spawn应用未安装或 Bundle ID 错误使用 frida-ps -H <ip> -a 验证 Bundle ID
Unable to connect to remote frida-serverfrida-server 未运行或端口被阻止在设备上启动 frida-server,并检查防火墙
SSH connection refused未启用 SSH 或凭据错误验证 SSH 访问:ssh mobile@<ip>
Timeout waiting for process应用崩溃或尚未完全启动先手动启动应用,然后重试
frida.ServerNotRunningErrorfrida-server 版本不匹配将 frida-server 版本与主机上的 frida 版本保持一致
输出中出现 cryptid 1转储失败,二进制文件仍处于加密状态确保转储期间应用正在运行,然后重试
Permission deniedSSH 密钥或密码问题检查 -u 和 -P 标志,或使用 SSH 密钥认证
版本不匹配的解决方法

frida-server 和主机上的 frida 必须具有相同的主版本:

# Check host version
frida --version

# Download matching frida-server from:
# https://github.com/frida/frida/releases
# Choose: frida-server-<version>-ios-arm64.xz

输出用途

获取已解密的 IPA 后:

  1. 静态分析 — 将已解密的 Mach-O 加载到 IDA/Ghidra/Hopper 中
  2. 类转储 — 提取 ObjC 头文件:class-dump <binary> > headers.h
  3. 字符串分析 — 搜索敏感字符串、URL 和密钥
  4. Frida Hook — 配合 rev-frida 技能进行动态分析
  5. 符号恢复 — 配合 rev-symbol 技能分析已剥离符号的二进制文件

注意事项

  • 转储期间,设备必须保持解锁,应用必须始终处于前台。
  • 对于包含多个框架的应用,frida-ios-dump 会转储应用包中的所有加密框架。
  • 某些具有高级越狱检测机制的应用可能会在转储完成前终止;建议先绕过越狱检测。

评论

支持 Markdown