Представлен выпуск платформы динамической трассировки и анализа приложений 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.
|