The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

26.08.2014 14:48

Разработчики проекта Frida, в рамках которого развивается платформа для динамической трассировки и анализа приложений, представили релиз 1.6.3 и новый графический отладчик CryptoShark, основанный на технологиях Frida. По решаемым задачам Frida напоминает DTrace в пространстве пользователя, но для написания скриптов для трассировки и обработки статистики выполнения приложения применяется язык JavaScript. По сути Frida является аналогом Greasemonkey для нативных программ, позволяя контролировать работу программы во время её выполнения также, как Greasemonkey даёт возможность контролировать обработку web-контента.

Трассировка программ поддерживается на платформах Linux, Windows, OS X и iOS. Простейшие сценарии трассировки могут выполняться при помощи утилиты frida-trace (например, "frida-trace -i 'recv*' -i 'read*' Skype"), для более сложных сценариев предлагается подключать обработчики на языке JavaScript. Подобные обработчики имеют полный доступ к памяти процесса, могут перехватывать обращение к функциям и вызывать реализованные в приложении функции из JavaScript-кода. Таким образом в обработчиках может быть организовано двунаправленное взаимодействие с процессом.

Доступность Python-биндинга позволяет использовать язык Python для создания утилит и надстроек над Frida API (скрипты, контролирующие выполнение программы создаются только на JavaScript). Одним из перспективных направлений использования Frida является создание средств для анализа и разбора проприетарных криптографических протоколов и API.

CryptoShark является кроссплатформенной графической надстройкой над Frida, предоставляющей удобный интерфейс для отладки произвольных процессов с использованием техники динамической рекомпиляции. Работа осуществляется на уровне машинного кода, без необходимости наличия отладочной информации или исходных текстов. Поддерживается установка тегов на вызовы API, отображение данных о вызываемых функциях в режиме реального времени, подстановка вызовов для детального журналирования действий.

Базовые компоненты Frida написаны с использованием языков Си и Vala. Для обработки JavaScript применяется движок V8. Отладчик CryptoShark написан на языке C++ и использует для построения интерфейса библиотеку Qt5, а для дизассемблирования - фреймворк Сapstone. Исходные тексты всех компонентов проекта распространяются под свободной лицензией wxWindows Library Licence (вариант LGPL, не накладывающий ограничений на условия распространения бинарных сборок производных работ).

  1. Главная ссылка к новости (http://www.frida.re/news/2014/...)
  2. OpenNews: Выпуск системы динамической отладки SystemTap 2.5
  3. OpenNews: Выход ktap 0.2, системы динамической трассировки для ядра Linux
  4. OpenNews: Компания Oracle представила первый стабильный релиз DTrace для Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40455-frida
Ключевые слова: frida, dtrace, trace, debug
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (11) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 17:05, 26/08/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так и не понял зачем это нужно
     
     
  • 2.4, Аноним (-), 17:26, 26/08/2014 [^] [^^] [^^^] [ответить]  
  • +/
    я так понял что это для живого перехвата и модификации функций
     
     
  • 3.7, Аноним (-), 19:41, 26/08/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну это понятно, юзкейс то какой
     
     
  • 4.9, Аноним (-), 10:25, 27/08/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Продвинутое изучение активности в системе с трассировкой/профилировкой?
     
  • 2.11, Аноним (-), 09:24, 28/08/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Для реверс-инжиниринга.
     

  • 1.5, x0r (??), 17:43, 26/08/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    чтобы отлаживать native я должен знать етот ваш жабаскрипт??
     
     
  • 2.6, inferrna (ok), 18:05, 26/08/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > чтобы отлаживать native я должен знать етот ваш жабаскрипт??

    не должен. Вот лично прям ты можешь отлаживать прямо в hex

     
     
  • 3.10, Аноним (-), 10:27, 27/08/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > не должен. Вот лично прям ты можешь отлаживать прямо в hex

    Ну вообще-то большинство системного софта на си и было бы очень кстати если бы и остальное делалось на нем же или чем-то похожем. Разучивать 2 сильно разных ЯП - таки криво.

     
  • 2.8, udev rules (?), 04:26, 27/08/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Никто не заставляет тебя юзать этот отладчик для отладки натива.

    Мне тоже решение показалось странным, но, очевидно, разработчики решили не придумывать свой собственный NIH-скриптовый язык, чтобы его можно было использовать в дебаггере, а решили взять уже распространённый скриптовый язык (а это чаще всего либо Lua, либо JS, т.к. для них библиотеки-интерпретаторы есть).

     
     
  • 3.12, Аноним (-), 09:25, 28/08/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > а решили взять уже распространённый скриптовый язык (а это чаще всего
    > либо Lua, либо JS, т.к. для них библиотеки-интерпретаторы есть).

    Лучше бы Python взяли.

     
     
  • 4.13, Аноним (-), 04:17, 29/08/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> а решили взять уже распространённый скриптовый язык (а это чаще всего
    >> либо Lua, либо JS, т.к. для них библиотеки-интерпретаторы есть).
    > Лучше бы Python взяли.

    Python тоже есть, вот пример из официальной документации:

    "import frida
    p = frida.attach("cat")
    print([x.name for x in p.enumerate_modules()])"

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру