
Неофициальное расширение frida для VSCode
Репозиторий | Проблемы | Установка
Это проект, созданный сообществом, и он не связан с официальной командой Frida. Он разрабатывается и поддерживается @CodeColorist как расширение с открытым исходным кодом для Visual Studio Code, улучшающее работу со скриптами Frida.
inetcat, запускающей SSH-оболочку)Если вы работаете в Windows, держите iTunes открытым, чтобы взаимодействовать с iOS-устройствами через USB.
Из-за PEP0668 при глобальном выполнении pip3 install frida-tools может возникнуть ошибка.
Рекомендуемый способ — открыть папку (рабочую область) в VSCode, затем создать и активировать виртуальное окружение с помощью расширения Python. В этом случае расширение будет использовать ваше текущее активное Python-окружение venv для загрузки команд frida.
В качестве альтернативы можно использовать менеджер пакетов, например pipx или UV, чтобы установить его в $PATH, сохраняя изоляцию.

Отображает приложения и процессы на подключённых устройствах на боковой панели. Щёлкните правой кнопкой мыши, чтобы подключиться, подключиться с повышенными привилегиями для локальных целей, запустить, запустить в приостановленном режиме, завершить процессы или скопировать информацию об устройстве/процессе в буфер обмена. Поддерживаются локальные, USB и удалённые устройства. Записи локальных процессов включают метаданные, получаемые по возможности: путь к исполняемому файлу, владелец, родительский PID и аргументы, если они доступны.
Просматривайте загруженные нативные модули и их экспортируемые функции для любого подключённого процесса. Фильтруйте модули по имени, просматривайте базовый адрес, размер и путь, затем выбирайте экспортируемые функции для генерации хуков.
Исследуйте классы и методы времени выполнения как для Java, так и для Objective-C. Фильтруйте классы, переключайтесь между собственными и унаследованными методами и выбирайте методы пакетно для генерации хуков. Также включает просмотр протоколов Objective-C для анализа протоколов.
Дамп заголовков классов для реверс-инжиниринга:
Генерация кода хуков Frida из панелей Modules и Classes:
Interceptor.attach() с колбэками onEnter / onLeave для экспортируемых функцийJava.perform() / Java.use() с поддержкой перегрузки методовКонтекстно-зависимые автодополнения для скриптов Frida на JavaScript / TypeScript:
ObjC.classes.<ClassName> — дополнение имён классов Objective-CObjC.classes.Foo['<method>'] — дополнение селекторов методовObjC.classes.Foo.method — дополнение селекторов методов классаJava.use('<ClassName>') — дополнение имён классов JavaProcess.getModuleByName('<name>') — дополнение имён загруженных модулейЯзыковой сервер зависит от контекста целевого процесса. Вам необходимо создать файл конфигурации .vscode/frida.json в рабочей области. Самый простой способ — щёлкнуть правой кнопкой мыши процесс или приложение на боковой панели и выбрать Set LSP Target, что создаст файл автоматически.
.vscode/frida.jsonФайл указывает, к какому устройству и цели должен подключаться LSP. Он требует поле device и ровно одно из полей app, pid или process.
Подключение по идентификатору приложения (рекомендуется — запускает или подключается к приложению):
{
"device": "local",
"app": "com.example.myapp"
}
Подключение по имени процесса:
{
"device": "local",
"process": "myprocess"
}
Подключение по PID (полезно, когда несколько процессов имеют одинаковое имя):
{
"device": "local",
"pid": 1234
}
Значение device соответствует идентификатору устройства Frida — local для хост-машины, usb для устройства, подключённого через USB, или строка host:port для удалённых устройств.
LSP отслеживает изменения этого файла. Изменение или повторное создание автоматически перезапускает языковой сервер с новой целью.
Потоковая передача журналов приложений в реальном времени из подключённых процессов.
Генерация launch.json и tasks.json для VSCode для отладки скриптов Frida с точками останова.
Для Android-устройств Open Shell — это обёртка над adb shell.
Для iOS предоставляет SSH-оболочку на джейлбрейкнутых устройствах. Возможно, потребуется настроить учётные данные.
Подключение к удалённым устройствам Frida через host:port прямо с боковой панели.