Выпуск платформы динамической трассировки приложений Frida 12.10

Представлен выпуск платформы динамической трассировки и анализа приложений Frida 12.10, который можно рассматривать как аналог Greasemonkey для нативных программ, позволяющий контролировать работу программы во время её выполнения также, как Greasemonkey даёт возможность контролировать обработку web-страниц. Трассировка программ поддерживается на платформах Linux, Windows, macOS, Android, iOS и QNX. Исходные тексты всех компонентов проекта распространяются под свободной лицензией wxWindows Library Licence (вариант LGPL, не накладывающий ограничений на условия распространения бинарных сборок производных работ).

По решаемым задачам Frida напоминает DTrace в пространстве пользователя, но для написания скриптов для трассировки и обработки статистики выполнения приложения применяется язык JavaScript. Обработчики имеют полный доступ к памяти процесса, могут перехватывать обращение к функциям и вызывать реализованные в приложении функции из JavaScript-кода. Базовые компоненты Frida написаны с использованием языков Си и Vala. Для обработки JavaScript применяется движок V8. Имеются обвязки над API Frida для Node.js, Python, Swift, .NET, Qt/Qml и C.

В новом выпуске существенно расширены возможности по отладке, трассировке и обратному инжинирингу Java-программ — в модуль frida-java-bridge добавлена поддержка HotSpot JVM, которая позволяет применять данную прослойку не только для Android, но для обычных Java-программ, использующих JDK. В утилиту frida-trace добавлена трассировка методов Java. Для определения выполнения Java-методов, соответствующих определённым критериям, предложен новый API Java.enumerateMethods (query). Запросы для перехвата методов задаются в форме «class! method». Из не связанных с Java изменений отмечается улучшение поддержки 32-разрядных систем ARM в движке трассировки Stalker и реализация адаптивной оптимизации, которая позволила до пяти раз ускорить выполнение Stalker.

Источник: http://www.opennet.ru/opennews/art.shtml? num=53269

© OpenNet