Frida - это набор динамических инструментов для разработчиков, реверс-инженеров и исследователей безопасности.
это
- Scriptable : Это позволяет вводить свои собственные сценарии в черные процессы коробки. Перехватить любую функцию, шпионить за криптографическими API или отслеживать частный код приложения, исходный код не требуется. Отредактируйте, нажмите «Сохранить» и сразу увидите результаты. И все это без этапов компиляции и перезапуска программы.
- Портативный : работает в Windows, macOS, GNU / Linux, iOS, Android и QNX. Установите привязки Node.js из npm, возьмите пакет Python из PyPI или используйте Frida через его привязки Swift, привязки .NET, привязки Qt / Qml или C API.
- Бесплатно : Frida - это бесплатное программное обеспечение.
- Проверено в бою : он очень популярен среди исследователей безопасности и пентестеров.
Frida также предоставляет вам несколько простых инструментов, построенных на основе Frida API. Их можно использовать как есть, настраивать в соответствии с вашими потребностями или служить в качестве примеров использования API.
Зачем нужна Фрида в вашем арсенале (вот несколько вариантов использования):
- Есть это новое популярное приложение, которое всем так нравится, но оно доступно только для iOS, и вы хотели бы с ним взаимодействовать. Вы понимаете, что он полагается на зашифрованные сетевые протоколы, а такие инструменты, как Wireshark, просто не справятся. Вы берете Фриду и используете ее для трассировки API.
- Вы создаете настольное приложение, которое было развернуто на сайте клиента. Есть проблема, но встроенного кода ведения журнала просто недостаточно. Вам необходимо отправить клиенту индивидуальную сборку с большим количеством дорогостоящего кода для ведения журнала. Тогда вы понимаете, что можете просто использовать Frida и создать инструмент для конкретного приложения, который добавит всю необходимую диагностику всего в несколько строк Python. Не нужно отправлять клиенту новую пользовательскую сборку - вы просто отправляете инструмент, который будет работать во многих версиях вашего приложения.
- Вы хотите создать Wireshark на стероидах с поддержкой сниффинга зашифрованных протоколов. Он мог даже манипулировать вызовами функций для ложных сетевых условий, которые в противном случае потребовали бы от вас создания лаборатории тестирования.
- Ваше внутреннее приложение может использовать некоторые тесты черного ящика, не загрязняя производственный код логикой, необходимой только для экзотического тестирования.
Как установить Фриду
Требования к инструментам командной строки Frida:
- Python - настоятельно рекомендуется последняя версия 3.x
- Windows, macOS или GNU / Linux
Лучший способ установить инструменты интерфейса командной строки Фриды - через PyPI:
$ pip install frida-tools
Установить вручную:
загрузите двоичные файлы и установите их.
Режимы работы
Frida обеспечивает динамическое оснащение через свое мощное инструментальное ядро Gum, написанное на C. Поскольку такая инструментальная логика подвержена изменениям, вы обычно хотите написать ее на языке сценариев, чтобы получить короткий цикл обратной связи при ее разработке и сопровождении. Здесь в игру вступает GumJS. С помощью всего нескольких строк на C вы можете запустить фрагмент JavaScript внутри среды выполнения, которая имеет полный доступ к API Gum, что позволяет подключать функции, перечислять загруженные библиотеки, их импортированные и экспортируемые функции, читать и записывать память, сканировать память на наличие шаблонов. , так далее.
- Injected
Однако в большинстве случаев вы хотите создать существующую программу, присоединиться к работающей программе или захватить ее в процессе ее создания, а затем запустить в ней свою инструментальную логику. Поскольку это очень распространенный способ использования Frida, ему посвящена большая часть нашей документации. Эта функциональность предоставляется frida-core, который действует как логистический уровень, который упаковывает GumJS в общую библиотеку, которую он внедряет в существующее программное обеспечение, и обеспечивает двусторонний канал связи для общения с вашими скриптами, если это необходимо, и последующей выгрузки. их. Помимо этой основной функции, frida-core также позволяет вам перечислять установленные приложения, запущенные процессы и подключенные устройства. К подключенным устройствам обычно относятся устройства iOS и Android, на которых работает frida-server. Этот компонент по сути является просто демоном, который предоставляет ядро frida через TCP,
- Embedded