
Надёжный инструмент на основе Frida для сброса расшифрованных iOS-приложений в формат .ipa с джейлбрейк-устройства; поддерживает приложения из App Store, сайдлоад и системные.
Этот проект был вдохновлён frida-ios-dump.
Поскольку недавно я столкнулся с проблемами этого инструмента, я решил создать frida-ipa-extract с большей надёжностью и дополнениями для решения проблем, с которыми мы сталкиваемся сегодня.
Извлечение расшифрованного .ipa с взломанного iOS-устройства с помощью Frida. Поддерживаются приложения, установленные через App Store, sideload, а также системные приложения.
frida-serverУстановка:
# Install as a standalone tool using uv or pipx
uv tool install git+https://github.com/lautarovculic/frida-ipa-extract.git
# Or install as an editable package (for development)
pip install -e .
# Using the entry point (if installed as standalone tool)
frida-ipa-extract
# Or using the script directly
python extract.py -U -f com.example.app -o MyApp.ipa
python extract.py -U -f com.example.app -o MyApp.ipa --sandbox
python extract.py -U -f com.example.app -o MyApp.ipa --no-resume
python -m frida_ipa_extract -U --pid 1234 -o MyApp.ipa
./extract.py -U "My Running App"
python extract.py -H 192.168.100.32 -P 2222 -u root -p password -f com.example.app
Аргументы:
-f <target>: запустить приложение (bundle id или имя приложения)--pid <pid>: подключиться к запущенному PIDtarget (позиционный): имя приложения/bundle ID запущенного приложения-o <path>: путь для выходного IPA (по умолчанию <AppName>.ipa)-U: подключение через USB-H <host> -P <port> -u <user> -p <pass>: подключение через SSH (paramiko)--sandbox: сохранить песочницу (sandbox) приложения в текущий каталог как <AppName>-sandbox--no-resume: оставить запущенное приложение в приостановленном состоянии (полезно, если приложение падает из-за обнаружения джейлбрейка при инструментировании)Если вы не передаёте -f или --pid, инструмент подключается к запущенному приложению. Если цель не указана, он выведет список запущенных приложений и предложит выбрать.
-U инструмент открывает локальный туннель к frida-server на порту 27042 и использует SFTP для загрузки бандла приложения. Если переданы и -U, и -H, USB используется для Frida, а SSH — только для передачи файлов.-f, чтобы запустить его.frida-server запущен на устройстве перед дампом.--no-resume или передачу через SSH.Frida attach timed out: приложение может блокировать подключение; используйте -f для запуска или попробуйте --no-resume.script has been destroyed во время загрузки: приложение упало; повторите с --no-resume или используйте передачу через SSH (-H/-u/-p).No running apps found: приложение не запущено; используйте -f, чтобы запустить его.