
Инструмент, который помогает легко отслеживать классы, функции и изменять возвращаемые значения методов на платформе iOS
📍 Инструмент, который поможет вам легко использовать frida. Поддерживает скрипты для трассировки классов, функций и изменения возвращаемых значений методов на платформе iOS.
👉 Для платформы Android: frida-android-hook
👉 Для перехвата зашифрованных API в iOS-приложениях: frida-ios-intercept-api
| ОС | Поддерживается | Примечание |
|---|---|---|
| MacOS | ✅ | Стабильно |
| Linux | ✅ | Стабильно |
| Windows | ✅ | Нестабильно |
| iOS | Frida | Frida-tools | Поддерживается | Стабильная версия |
|---|---|---|---|---|
| 16.7.11 | 16.7.14 | 13.7.1 | ✅ | |
| 16.7.11 | 16.1.4 | 12.2.1 | ✅ | ✅ |
Примечание: Используйте стабильные версии для исправления проблемы ObjC not defined, присутствующей в frida 17.0.1.
Работает с Python 3.x. Поддерживает как spawn, так и attach скрипты к процессу. Все опции из ./ioshook -h:
[+] Последняя версия
https://github.com/noobpk/frida-ios-hook/releases
[+] Версия для разработки
git clone -b dev https://github.com/noobpk/frida-ios-hook
[+] Python >= v3.0 (рекомендуется использовать pyenv или virtualenv)
1. cd frida-ios-hook/
2. python3 -m venv py-env
3. source py-env/bin/activate
1. pip3 install -r requirements.txt
2. python3 setup.py
3. cd frida-ios-hook
4. ./ioshook -h (--help)
Полное описание использования в Wiki
Если скрипт не работает, попробуйте следующую команду:
frida -U -f package -l script.js
Я не разработчик, поэтому мои навыки программирования могут быть не лучшими. Если у этого инструмента возникнут какие-либо проблемы или он не будет работать, создайте issue, и я постараюсь его исправить. Любые предложения по новым функциям и обсуждения приветствуются!
| Категория | Опция | Описание |
|---|
| Общие | -h, --help | Показать справку и выйти |
--cli | Запустить интерактивную CLI iOSHook | |
-p, --package ПАКЕТ | Идентификатор пакета целевого приложения (spawn) | |
-n, --name ИМЯ | Отображаемое имя целевого приложения (attach) | |
--pid PID | ID процесса целевого приложения (attach) | |
-s, --script SCRIPT.JS | Путь к JavaScript-скрипту перехвата Frida | |
-c, --check-version | Проверить наличие обновлений iOSHook | |
-u, --update | Обновить iOSHook до последней версии | |
| Быстрый метод | -m, --method МЕТОД | app-static, bypass-jb, bypass-ssl, i-url-req, i-crypto (используйте -n или -p по необходимости) |
| Информация | --list-devices | Список всех подключенных устройств Frida |
--list-apps | Список всех установленных приложений на устройстве | |
--list-scripts | Список всех доступных скриптов Frida | |
--logcat | Показать системный журнал устройства (idevicesyslog) | |
--conf | Открыть и отредактировать файл hook.conf | |
--shell, --ssh | Открыть SSH-оболочку на устройстве (по умолчанию: USB через iproxy) | |
--ssh-port-forward ЛОКАЛЬНЫЙ:УСТРОЙСТВО | Проброс порта с локальной машины на устройство (ssh -R) | |
--network ХОСТ:ПОРТ | Подключение по сети SSH (порт по умолчанию 22) | |
--local | Подключение через USB с помощью iproxy | |
| Дамп и расшифровка IPA | -d, --dump-app | Дамп и расшифровка файла IPA приложения |
-o, --output OUTPUT_IPA | Имя выходного файла для расшифрованной IPA (без .ipa) | |
--dump-output-dir КАТАЛОГ | Каталог для вывода дампа IPA (по умолчанию: workspaces/dumps) | |
| Дамп памяти | --dump-memory ОПЦИИ | Дамп памяти работающего приложения (например, --string, --read-only) |
| HexByte-сканирование IPA | --hexbyte-scan РЕЖИМ | Режимы: help, scan, patch, json |
--file FILE.IPA | IPA-файл для сканирования/патча | |
--pattern ШАБЛОН | Шестнадцатеричный шаблон для поиска (например, E103??AA????E0) | |
--address АДРЕС | Адрес для патча (формат: адрес,байты,расстояние) | |
--task TASK.json | JSON-файл задачи для hexbyte-сканирования | |
| reFlutter | --reflutter FLUTTER.IPA | Путь к Flutter IPA для анализа reFlutter |
| Название | Ссылка |
|---|
| Frida iOS Hook | Базовое использование | Установка - Список устройств - Список приложений - Список скриптов - Logcat - Shell | https://youtu.be/xSndHgTdv4w |
| Frida iOS Hook | Базовое использование | Дамп и расшифровка IPA - Дамп памяти приложения - Hexbyte-сканирование IPA | https://youtu.be/AUsJ9_gnWAI |
| Frida iOS Hook | Базовое использование | App Static - Обход Jailbreak - Обход SSL - Перехват URL + Crypto | https://youtu.be/nWhKDSzArf8 |
| Frida iOS Hook | Расширенное использование | Дамп памяти - Radare2 - Iaito | https://youtu.be/nUqE4EYWiEc |