В этом году мы решили возобновить публикацию результатов предыдущего и анонсировать на ресурсе Хабрахабр новый GSoC для опенсорс-проекта Radare2.
Текущие результаты
Как уже писал ранее , в 2015 году радар2 ещё не был принят как отдельный проект, но спасибо Солардиз и его проект Открытая стена , одну из задач по радару2 взял под свое крыло.После этого, начиная с 2016 года, фреймворк участвует как отдельная компания.
За годы, прошедшие с момента последней публикации, в рамках GSoC были выполнены следующие важные задачи:
- декомпилятор Radeco (все еще в разработке)
- улучшенная поддержка ОС Windows
- обратная отладка
- Поддержка удаленной отладки GDB и LLDB
- определение аргументов функции
- Улучшение веб-интерфейса
Одним из отличий является то, что подавать заявки могли не только студенты.
В рамках данного проекта были решены следующие задачи:
- поддержка подписей FLIRT и YARA
- загрузка отладочной информации PDB
- поддержка структур (аналог 010 Editor)
- анализ метаданных ObjC из Mach-0 для определения классов и символической информации
Методика разработки проекта
Все репозитории расположены на github и используется как средство отслеживания ошибок проблемы с github .Тесты разделены репозиторий и выполняются на Трэвис К.
И.
Мы также используем Покрытие для поиска ошибок и для различных демонстраций - асцинема сервер.
Кроме того, для желающих стать одним из разработчиков проекта составлено несколько документов:
Для начала для ознакомления с кодовой базой проекта рекомендуем желающим исправить одну из отмеченных проблем.
Требуемые навыки
Большая часть проекта Radare2 написана на C, поэтому мы ожидаем, что кандидаты будут знакомы с этим языком.
Но в то же время некоторые задачи потребуют Go для создания платформы взаимодействия, Rust для Radeco и Qt с C++ для Cutter. Если о Radeco уже упоминалось ранее, то Cutter (до «недавнего времени» он назывался Iaito) появился сравнительно недавно и представляет собой графический интерфейс для радара2.
Участие в GSoC
Что нужно сделать для участия:- Правила участия читайте на сайте Google .
- Возьмите один из задания или предложите свой.
- Напишите черновик приложения с помощью Google Docs и наш шаблон , и попросите одного из наставников проверить это.
- Подайте заявку через интерфейс Google.
- Анализ
- Графики #6967
- Дизассемблеры и ассемблеры
- РЭГГ2 #6949
- Рефакторинг
- Улучшенная поддержка Unicode (UTF-8).
- Форматы файлов
- Отладка
- Разнообразный
- Радеко
- Руна
- Резак
Рекомендации по написанию заявления:
- Приложение не обязательно должно быть большим, достаточно пары страниц.
- Попробуйте разделить период участия в GSoC на задачи, а каждую задачу — на подзадачи.
Это поможет не только нам понять, насколько вы заинтересованы в выполнении задачи, но и вам более глубоко оценить задачу перед ее началом и расставить приоритеты.
- Запишите, сколько времени в день/неделю вы планируете уделять проекту.
- Пожалуйста, укажите свой часовой пояс, чтобы мы могли подобрать вам наставника, похожего на вас, для облегчения общения.
- Пожалуйста, подавайте заявку заранее, а не в последнюю минуту.
- Вы также можете выбрать «резервную» проблему, чтобы в случае конфликта интересов (два студента выбрали одну и ту же проблему) нам было легче ее решить.
Список заданий
В рамках проекта Radare2 есть еще несколько подпроектов: Радеко , Руна И Резак .Поэтому на каждого было выделено по одному заданию.
- [Radeco] Бэкэнд Pseudo-C для декомпиляции — ожидается, что в этом году наконец-то будет реализована возможность декомпиляции кода на Pseudo-C с использованием возможностей анализа Radeco.
- [Rune] Интеграция с radeco-lib и радаром2 — Руна Библиотека создана для анализа разделов бинарных файлов методом символьного выполнения.
- [Cutter] Добавлена поддержка отладки и эмуляции.
- Консольный интерфейс — улучшить текущие возможности CLI-интерфейса (например, одна из хитростей — добавить режим разделения для сравнения файлов через radiff2)
- Типы — улучшить поддержку типов и структур (struct/union)
- Разбор EXE/DLL как файла FAT - улучшить поддержку формата мачо и разделение PE (dos, win, .
net)
- Поддержка платформы Windows - включает в себя как исправление ошибок при отладке по различным протоколам (native, gdb:// иwindbg://), так и улучшение текущих возможностей
- Платформа для взаимодействия в реальном времени - аналогично проектам сотрудничатьREate , ЯКо И СОЛИДАРНОСТЬ добавить возможность совместного реверса файлов, что поможет как анализировать большие файлы, так и решать проблемы CTF в команде
- Генератор ROPchain с использованием Ragg2 — улучшить компиляцию ROP-гаджетов и добавить автоматическое создание ROP-цепочек (рекомендуется использовать SMT-солверы, например Z3), как это сделано в ROPгаджет
ре
Вопросы по задачам или использованию фреймворка также можно задать на IRC-канале #radare в сети Freenode или телеграм-канале.https://t.me/radare (между ними настроен транспорт).
Теги: #radare2 #дизассемблер #обратное проектирование #отладка #открытый исходный код #Ассемблер #windbg #cutter #gsoc #информационная безопасность #открытый исходный код #Ассемблер #обратное проектирование
-
Зачем Нужен Простой Уничтожитель Файлов
19 Oct, 24 -
Бардин, Джон
19 Oct, 24 -
2Bechef — Сервис Заказа Домашней Еды
19 Oct, 24 -
Блоги@Mail.ru Снова Обогнали Livejournal
19 Oct, 24 -
Faq От Представителей Живого Журнала
19 Oct, 24 -
Видеофон D900 На Базе Android 4.2
19 Oct, 24