Динамический анализ с Frida
Frida и перехват функций
«Динамический анализ с Frida» — бесплатный урок Ethical Hacking Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ethical Hacking Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ethical Hacking Academy содержит 4 уроков всего.
Что такое Frida
Frida — это набор инструментов для динамической инструментализации. Он внедряет движок JavaScript в работающее приложение, позволяя исследовать и изменять его поведение во время выполнения без повторной компиляции.
Это самый важный инструмент для динамического тестирования безопасности мобильных приложений.
Как работает Frida
Frida запускает небольшой агент (frida-server на устройстве) и клиент на Вашем компьютере. Вы пишете JavaScript, который устанавливает перехватчики на функции целевого процесса.
Ваши сценарии могут читать аргументы, изменять возвращаемые значения и напрямую вызывать методы.
Настройка
Вы передаёте соответствующий двоичный файл frida-server на устройство с RootCheck (или используете пропатченный APK с frida-gadget на устройствах без RootCheck) и запускаете его.
Затем настольные инструменты подключаются через USB.
adb push frida-server /data/local/tmp/
adb shell /data/local/tmp/frida-server &Перечисление приложений
Подтвердите подключение, выведя список установленных приложений и выполняющихся процессов с помощью инструментов Frida CLI.
Это проверяет доступность frida-server и сообщает имя пакета, на который следует нацелиться.
frida-ps -UaiЧто такое перехват
Перехват означает перехват функции, чтобы Ваш код выполнялся до неё, после неё или вместо неё. Вы можете вести журнал входных данных, изучать выходные данные или полностью заменять поведение.
В Android Вы устанавливаете перехватчики на методы Java (и нативные функции) внутри работающего приложения.
Простой перехват Java-метода
Внутри Java.perform Вы выбираете класс и метод, а затем переопределяете его implementation. Можно записать аргументы в журнал, а затем вызвать исходный метод.
Обратите внимание: в примере используются одинарные кавычки, а не обратные, чтобы сохранить корректность JSON.
Java.perform(function(){
var Login = Java.use('com.app.Login');
Login.check.implementation = function(pw){
console.log('pw=' + pw);
return this.check(pw);
};
});Обход проверки
Чтобы обойти логику, переопределите метод так, чтобы он возвращал нужное Вам значение. Например, заставьте проверку RootCheck или лицензии возвращать false (не обнаружено) или true (доступ разрешён).
Это нейтрализует клиентскую защиту, которая доверяет устройству.
RootCheck.isRooted.implementation = function(){ return false; };Обход закрепления SSL-сертификата
Приложения используют закрепление SSL-сертификата, чтобы отклонять прокси. Сценарии Frida (например, популярные сценарии Objection или универсальные сценарии обхода закрепления) перехватывают логику закрепления, позволяя перехватывать HTTPS-трафик.
Это необходимо для анализа вызовов API приложения через прокси.
frida -U -f com.app -l ssl-bypass.jsObjection
Objection построен на Frida и предлагает готовые команды: обойти закрепление SSL-сертификата, выгрузить хранилище ключей, перечислить активности и прочитать хранилище приложения — и всё это без написания сценариев.
Он ускоряет выполнение распространённых задач во время проверки.
objection -g com.app exploreЗапуск и подключение
Frida может подключиться к работающему процессу или запустить приложение заново, загрузив Ваш сценарий с самого начала (-f).
Запуск необходим, когда требуется перехватить код, выполняющийся на раннем этапе, например проверки защиты от подмены во время запуска.
frida -U -f com.app -l hook.js --no-pauseТрассировка с помощью frida-trace
frida-trace автоматически создаёт и подключает перехватчики для функций, соответствующих шаблону, записывая каждый вызов в журнал. Это отличный способ выяснить, какие методы приложение действительно использует.
Можно нацелиться на методы Java или нативные функции, а затем доработать созданные обработчики для анализа конкретных аргументов.
frida-trace -U -f com.app -j '*Crypto*!*'Быстрая проверка
Вспомните основную возможность Frida.
Итоги
Теперь Вы понимаете, как выполняется динамический анализ с помощью Frida:
- Frida внедряет движок JS, чтобы устанавливать перехватчики на функции работающего приложения.
- Настройте frida-server, перечисляйте процессы с помощью
frida-psи устанавливайте перехватчики на методы Java. - Переопределяйте методы, чтобы обходить проверки и закрепление SSL-сертификата; Objection автоматизирует этот процесс.
- Используйте режим запуска, чтобы перехватывать код, выполняющийся на раннем этапе запуска.
Далее Вы изучите небезопасное хранение данных и коммуникации.
Часто задаваемые вопросы
Урок «Динамический анализ с Frida» бесплатный?
Да — полный текст урока «Динамический анализ с Frida» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ethical Hacking Academy, подпишись на CoddyKit PRO. Курс Ethical Hacking Academy содержит 4 уроков всего.
Чему я научусь в уроке «Динамический анализ с Frida»?
Frida и перехват функций Ты практикуешь Ethical Hacking Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ethical Hacking Academy?
Предыдущий опыт не требуется. Ethical Hacking Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Динамический анализ с Frida»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ethical Hacking Academy?
Да. Каждый урок Ethical Hacking Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Структура приложений Android
- Статический анализ APK
- Динамический анализ с Frida
- Небезопасное хранение и обмен данными