
Rev Ios Dump
- 705 installs
- 1.8k repo stars
- Updated May 6, 2026
- p4nda0s/reverse-skills
rev-ios-dump is an agent skill that dumps decrypted iOS app binaries from jailbroken devices using frida-ios-dump for developers who need Mach-O or IPA files for static reverse engineering.
About
rev-ios-dump is a Claude Code skill in p4nda0s/reverse-skills that automates iOS app decryption (砸壳) on jailbroken hardware. App Store IPAs ship FairPlay-encrypted; static analyzers need a decrypted Mach-O extracted at runtime. The skill orchestrates frida-ios-dump: Frida instruments the running app, memory is dumped, and a decrypted IPA is pulled over SSH or USB via iproxy. Developers reach for rev-ios-dump when they must decrypt an iOS app, dump an IPA from a device, or feed IDA, Ghidra, or Hopper a readable binary. Prerequisites include frida-server on device, Python dependencies from requirements.txt, and SSH key access. The workflow targets bundle identifiers or display names with python dump.py, yielding decrypted IPA files ready for unzip, class-dump, and disassembly.
- Part of the p4nda0s/reverse-skills collection oriented toward mobile reverse engineering
- Focused skill slug rev-ios-dump for iOS-oriented dump workflows
- Pairs with agent-driven RE sessions when SKILL.md and repo scripts are present locally
- Listed on skills.sh as a niche install (verify repo README before trusting commands)
- Use only on apps you own or are explicitly authorized to analyze
Rev Ios Dump by the numbers
- 705 all-time installs (skills.sh)
- +54 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #259 of 1,039 Mobile Development skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/p4nda0s/reverse-skills --skill rev-ios-dumpAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 705 |
|---|---|
| repo stars | ★ 1.8k |
| Last updated | May 6, 2026 |
| Repository | p4nda0s/reverse-skills ↗ |
How do you decrypt FairPlay iOS app binaries?
Capture or analyze iOS app binaries and runtime artifacts when you need reverse-engineering support inside your agent workflow.
Who is it for?
Mobile security engineers and iOS reverse engineers with jailbroken test devices who need decrypted binaries for static analysis.
Skip if: Developers without a jailbroken iOS device, legal authorization, or a legitimate security-research reason to decrypt third-party apps.
When should I use this skill?
User asks to decrypt an iOS app, dump an IPA from a device, 砸壳, or extract a decrypted Mach-O for reverse engineering
What you get
Decrypted IPA file, plaintext Mach-O binary, and runtime-dumped app bundle ready for disassembly
- decrypted IPA
- plaintext Mach-O binary
Files
rev-ios-dump - iOS App Decryption (砸壳)
Dump decrypted iOS application binaries from jailbroken devices for security analysis and reverse engineering.
---
Overview
iOS apps distributed via the App Store are encrypted with Apple's FairPlay DRM. To perform static analysis (IDA/Ghidra/Hopper), the binary must first be decrypted at runtime — commonly called "砸壳" (dumping the shell). This skill uses Frida to instrument the running process and dump the decrypted Mach-O from memory.
---
Prerequisites
| Requirement | Details |
|---|---|
| Jailbroken iOS device | With SSH access enabled |
| frida-server | Installed and running on the device |
| Python 3 | On the host machine |
| frida + frida-tools | pip3 install frida frida-tools |
| USB or network access | SSH connection to the device |
Verify frida-server is Running
# 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>---
Tool: frida-ios-dump
Repo: https://github.com/P4nda0s/frida-ios-dump
Installation
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.jsNote: This version uses a TypeScript-based Frida agent. The dist/dump.js must be compiled before dump.py can run.
---
Step-by-Step Workflow
Step 1: Identify Target App Bundle ID
Use one of these methods on the device:
# 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"Or use CocoaTop on the device to identify the running process and its Bundle ID.
Step 2: Ensure Target App is Running
The target app must be running on the device. frida-ios-dump attaches to the live process to dump decrypted memory.
Step 3: Execute Dump
cd frida-ios-dump
python3 dump.py -H <device_ip> -u mobile -P <password> <bundle_id>Parameters:
| Flag | Description |
|---|---|
-H | Device IP address |
-u | SSH username (typically mobile) |
-P | SSH password (typically alpine on fresh jailbreak) |
<bundle_id> | Target app Bundle ID (e.g., app.ish.iSH) |
Example:
python3 dump.py -H 192.168.1.100 -u mobile -P alpine app.ish.iSHStep 4: Verify Output
A successful dump produces a .ipa file in the current directory:
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_INFOIf cryptid 0 is shown, the binary is successfully decrypted.
---
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
Failed to spawn | App not installed or wrong Bundle ID | Verify Bundle ID with frida-ps -H <ip> -a |
Unable to connect to remote frida-server | frida-server not running or port blocked | Start frida-server on device, check firewall |
SSH connection refused | SSH not enabled or wrong credentials | Verify SSH access: ssh mobile@<ip> |
Timeout waiting for process | App crashed or not fully launched | Launch app manually first, then retry |
frida.ServerNotRunningError | frida-server version mismatch | Match frida-server version to host frida version |
cryptid 1 in output | Dump failed, binary still encrypted | Ensure app is running during dump, retry |
Permission denied | SSH key/password issue | Check -u and -P flags, or use SSH key auth |
Version Mismatch Fix
frida-server and host frida must be the same major version:
# Check host version
frida --version
# Download matching frida-server from:
# https://github.com/frida/frida/releases
# Choose: frida-server-<version>-ios-arm64.xz---
Output Usage
After obtaining the decrypted IPA:
1. Static analysis — Load the decrypted Mach-O into IDA/Ghidra/Hopper 2. Class dump — Extract ObjC headers: class-dump <binary> > headers.h 3. String analysis — Search for sensitive strings, URLs, keys 4. Frida hooking — Use with rev-frida skill for dynamic analysis 5. Symbol recovery — Use with rev-symbol skill for stripped binary analysis
---
Notes
- The device must remain unlocked and the app must stay in the foreground during the dump process.
- For apps with multiple frameworks, frida-ios-dump will dump all encrypted frameworks within the app bundle.
- Some apps with advanced jailbreak detection may terminate before the dump completes — consider bypassing jailbreak detection first.
Related skills
How it compares
Pick rev-ios-dump when you need agent-guided orchestration of frida-ios-dump on jailbroken hardware rather than manual CLI steps alone.
FAQ
What does rev-ios-dump produce?
rev-ios-dump uses frida-ios-dump on a jailbroken iOS device to pull a decrypted IPA from runtime memory. The output is a FairPlay-free Mach-O binary suitable for static analysis in IDA, Ghidra, or Hopper.
What setup does rev-ios-dump require?
rev-ios-dump requires frida-server on the jailbroken device, Python dependencies from requirements.txt, SSH access (often via iproxy 2222 22), and your public key in authorized_keys before running dump.py.