URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 98140
[ Назад ]

Исходное сообщение
"Выпуск платформы динамической трассировки приложений Frida и..."

Отправлено opennews , 26-Авг-14 16:37 
Разработчики проекта Frida (http://www.frida.re/), в рамках которого развивается платформа для динамической трассировки и анализа приложений, представили (http://www.frida.re/news/2014/08/25/frida-1-6-3-released/) релиз 1.6.3  и новый графический отладчик CryptoShark (https://github.com/frida/cryptoshark), основанный на технологиях Frida. По решаемым задачам Frida напоминает DTrace в пространстве пользователя, но для написания скриптов для трассировки и обработки статистики выполнения приложения применяется язык JavaScript. По сути Frida является аналогом Greasemonkey для нативных программ, позволяя контролировать работу программы во время её выполнения также, как Greasemonkey даёт возможность контролировать обработку web-контента.


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

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


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

<center><iframe width="640" height="360" src="//www.youtube.com/embed/hzDsxtcRavY?rel=0" frameborder="0" allowfullscreen></iframe></center>

Базовые компоненты Frida написаны с использованием языков Си и Vala. Для обработки JavaScript применяется движок V8. Отладчик CryptoShark написан на языке C++ и использует для построения интерфейса библиотеку Qt5, а для дизассемблирования - фреймворк Сapstone (https://github.com/aquynh/capstone). Исходные тексты всех компонентов проекта распространяются (https://github.com/frida/) под свободной лицензией wxWindows Library Licence (http://en.wikipedia.org/wiki/WxWindows_Library_Licence#License) (вариант LGPL, не накладывающий ограничений на условия распространения бинарных сборок производных работ).


URL: http://www.frida.re/news/2014/08/25/frida-1-6-3-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=40455


Содержание

Сообщения в этом обсуждении
"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено Аноним , 26-Авг-14 17:05 
Так и не понял зачем это нужно

"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено Аноним , 26-Авг-14 17:26 
я так понял что это для живого перехвата и модификации функций

"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено Аноним , 26-Авг-14 19:41 
Ну это понятно, юзкейс то какой

"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено Аноним , 27-Авг-14 10:25 
Продвинутое изучение активности в системе с трассировкой/профилировкой?

"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено Аноним , 28-Авг-14 09:24 
Для реверс-инжиниринга.

"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено x0r , 26-Авг-14 17:43 
чтобы отлаживать native я должен знать етот ваш жабаскрипт??

"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено inferrna , 26-Авг-14 18:05 
> чтобы отлаживать native я должен знать етот ваш жабаскрипт??

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


"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено Аноним , 27-Авг-14 10:27 
> не должен. Вот лично прям ты можешь отлаживать прямо в hex

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


"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено udev rules , 27-Авг-14 04:26 
Никто не заставляет тебя юзать этот отладчик для отладки натива.

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


"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено Аноним , 28-Авг-14 09:25 
> а решили взять уже распространённый скриптовый язык (а это чаще всего
> либо Lua, либо JS, т.к. для них библиотеки-интерпретаторы есть).

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


"Выпуск платформы динамической трассировки приложений Frida и..."
Отправлено Аноним , 29-Авг-14 04:17 
>> а решили взять уже распространённый скриптовый язык (а это чаще всего
>> либо Lua, либо JS, т.к. для них библиотеки-интерпретаторы есть).
> Лучше бы Python взяли.

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

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