- PVSM.RU - https://www.pvsm.ru -
Во-первых, хочу отчитаться по прошлому RSoC'14 [1], поблагодарить аудиторию хабра за ту помощь, позволившую нам организовать это мероприятие.
Благодаря тому, что не было необходимости следовать правилам Google, мы смогли изменить двух «официальных» участников «на лету».
В прошлом году мы выбрали двух официальных участников и 6 «неофициальных» (без денежного вознаграждения) [2]. Однако, в процессе продвижения кодинга осталось лишь трое неофициальных участников. Но, так как им успешно удалось завершить свои задания, мы поделили собранные деньги поровну между ними (порядка $700 на человека). Рассмотрим задания поподробнее [3]:
Два задания не были выполнены/завершены — это полный перевод всего фреймворка на использование базы данных sdb [4] и доводка до ума webui [5].
С другой стороны, три задания были завершены успешно, и на данный момент весь код находится в основной ветке.
Во-первых, это поддержка парсинга сложных структур и отображение их в необходимом формате, с помощью команды pf и парсера описания данных на языке Си (struct/union, etc).
Во-вторых, это поддержка загрузки и использования сигнатур формата FLIRT (из IDA Pro) [6], а также интеграция с Yara [7]. Благодаря тому, что это задание было успешно выполнено, radare2 может быть использован для анализа malware с использованием существующих баз сигнатур, накопленных за годы работы с IDA Pro и Yara. Код интеграции с Yara вынесен в отдельный репозиторий [8].
Ну и последнее успешно выполненное задание — это поддержка PDB [9]. Основное отличие от многих отладчиков и дизассемблеров (кроме IDA Pro) — это парсинг формата самостоятельно, без использования вызовов системных библиотек Windows.
Кроме того, с прошлого года значительно улучшилась ситуация с документацией: radare.today/radare2-is-documented/ [10]
В этом году radare2 не прошел отбор в Google Summer of Code как самостоятельная организация, что не остановило нас, и мы решили повторить опыт прошлого года и снова запустить собственную кампанию. Более того, огромное спасибо небезысвестному solardiz [11] и его проекту Openwall [12], под чьим патронажем мы будем участвовать в GSoC'15 в рамках одного задания. Для проведения же собственного RSoC'15 нам потребуется 3000 EUR для привлечения трех участников.
Итак, суммирую информацию по обоим Summer of Code:
Google Summer of Code:
Radare Summer of Code:
В этом году мы представили следующие задания для студентов GSoC и участников RSoC:
Создание виджетов для:
Кроме того, требуется обеспечить «резиновый» интерфейс, применимый для десктопа и планшета, а также минимизировать количество запросов к сети, для ускорения работы через интернет
Во-первых, необходимо добавить (и улучшить) поддержку ESIL для большего количества архитектур (см libr/anal/p/*).
Во-вторых, потребуется добавить следующие возможности для самого ESIL-движка:
Тут, я думаю, следует уточнить, что же имеется ввиду. Это задание тесно пересекается с предыдущим, так как позволяет на его основе реализовать автоматический анализ кода по ходу его исполнения.
Как многие знают, это является первым шагом к полноценной декомпиляции. В данном задании студенту потребуется создать трехторонний обмен информацией между тремя уровнями — бинарным кодом (и дизасмом), представлением ESIL и представлением SSA.
Данное задание потребуется выполнять на основе сравнения возможностей существующих отладкиков: gdb, lldb, voltron, mona.py, peda, immunity. Список того, что необходимо будет сделать:
Это потребуется для выделения её в отдельный проект, как capstone или sdb, для унификации синтаксиса между ассемблерами и для поддержки макрокоманд. Мы полагаем, что идеальным вариантом будет поддержка синтаксиса и макроязыка fasm [19].
Здесь участнику потребуется улучшить алгоритмы отрисовки перекрывающихся блоков, добавить полную поддержку юникода и красивых нод, поддержу цветов и подсветки синтаксиса, группировку нод и их комментирование.
Я не стал описывать все задания, лишь подчеркнул самые «системообразующие», более полную информацию можно получить на соответсвующей странице [21].
План на лето с подробным описанием заданий находится тут: rada.re/rsoc [21]
Официальный сайт проекта: rada.re/ [22]
Стать спонсором кампании RSoC или просто отправить пожертвование. [23]
P.S. В этом году (в отрыве от GSoC/RSoC) мы собираемся [24]: улучшить поддержку Windows (в том числе лучше интегрировать поддержку WinDbg [25] и PDB), закончить полный переезд на SDB, закончить ревизию лицензий (для удобства линковки с коммерческими продуктами без лишних раздумий, что можно включать в сборку, а что нет; улучшить поддержку мобильных платформ (ARM, MIPS), упростить написание плагинов и сделать сборку и использование байндингов более очевидными, увеличить количество регрессионных тестов и привлечь новых разработчиков.
Автор: xvilka
Источник [26]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/85810
Ссылки в тексте:
[1] RSoC'14: http://habrahabr.ru/post/218969/
[2] двух официальных участников и 6 «неофициальных» (без денежного вознаграждения): http://radare.today/rsoc-selections-results/
[3] поподробнее: http://radare.today/the-rsoc-is-over/
[4] базы данных sdb: http://radare.today/exploring-the-database/
[5] webui: http://cloud.rada.re/p/
[6] FLIRT (из IDA Pro): https://www.hex-rays.com/products/ida/tech/flirt/in_depth.shtml
[7] Yara: https://plusvic.github.io/yara/
[8] отдельный репозиторий: https://github.com/radare/radare2-extras/tree/master/yara
[9] PDB: https://support.microsoft.com/en-us/kb/121366
[10] radare.today/radare2-is-documented/: http://radare.today/radare2-is-documented/
[11] solardiz: https://twitter.com/solardiz
[12] Openwall: http://openwall.info/wiki/
[13] Веб-интерфейс: http://radare.org/gsoc/#title_5
[14] Поддержка эмуляции на основе ESIL: http://radare.org/gsoc/#title_6
[15] Динамический анализ на основе эмуляции через ESIL: http://radare.org/gsoc/#title_7
[16] Автоматическое преобразование кода ESIL в SSA (Single Static Assignment form): http://radare.org/gsoc/#title_8
[17] Работа над интерфейсом и возможностями отладчика: http://radare.org/gsoc/#title_11
[18] Написание универсальной библиотеки-парсера для ассемблеров (rasm2): http://radare.org/gsoc/#title_13
[19] fasm: http://flatassembler.net
[20] Улучшение возможностей radare2 по созданию графов и визуализации данных и кода: http://radare.org/gsoc/#title_14
[21] на соответсвующей странице: http://rada.re/rsoc
[22] rada.re/: http://rada.re/
[23] Стать спонсором кампании RSoC или просто отправить пожертвование.: http://rada.re/r/rsoc.html
[24] собираемся: http://radare.today/what-is-planned-for-r2-in-2015/
[25] WinDbg: https://github.com/radare/radare2/blob/master/doc/windbg
[26] Источник: http://habrahabr.ru/post/252905/
Нажмите здесь для печати.