Radare2 собирает денежные средства на проведение своего Summer of Code



    Свободный фреймворк для дизассемблирования и реверс-инжиниринга radare2 запустил краудфандинговую
    кампанию
    с целью собрать 12000 EUR на проведение собственного Summer of Code.

    В этом году radare2 не прошел отбор в Google Summer of Code, что не остановило нас, и мы решили всё равно выполнить задуманное (web интерфейс, бинарные шаблоны, миграция на sdb, ROP-компилятор, ESIL — Evaluable Strings Intermediate Language, парсер PDB и протокола Windbg, сигнатурный анализ, bokken — графический интерфейс на PyGtk, поддержка новых архитектур).


    Фреймфорк написан полностью на языке Си и доступен в виде подключаемых библиотек. Также в состав входят утилиты по сравнению файлов, ассемблеры, мини-компилятор shell-кодов. Большая часть кода распространяется по лицензии LGPL, что позволяет использовать его в коммерческих проектах. Основной парадигмой дизассемблера является его интерактивность.

    Среди поддерживаемых архитектур: 8051, x86 (16, 32, 64 бита), arm (включая ARM64/AArch64), avr, arc (ARCtangent A4 и ARCompact), mips, powerpc, sparc, h8, cr16, TI TMS320*, EBC (EFI bytecode), java, dalvik, bf, rarvm. Radare2 компилируется и работает на следующих платформах: GNU/Linux, Windows, OSX, *BSD, Solaris, Android и iOS. Поддерживает скриптование на Vala, Python (ctypes), JavaScript, Perl, Ruby, Go, Guile, Lua, Java, OCaml. Поддерживает как прямую отладку, так и работу с протоколами gdb, winedbg.

    Разработка вёдется на GitHub-е, так что каждый может отправить Pull Request с исправлением какого-либо бага, или добавлением новой возможности.

    В процессе написания книга по использованию radare2 (пока не закончена).

    Также доступны несколько примеров использования:


    План на лето с подробным описанием заданий находится тут: rada.re/rsoc

    Официальный сайт проекта: rada.re

    Скриншот radare2 в действии:


    Скриншот реверсинга BIOS с помощью radare2:

    Share post

    Similar posts

    Comments 29

      0
      Выглядит аппетитно, желаю проекту процветания, надеюсь будет хорошей свободной альтернативой IDA.

      ЗЫ: Ссылка «Примеры решения простых crackme из набора IOLI» ведет на 404 страницу.
      0
      А как бы Вы ломали кейгенми из статьи Анализ приложения защищенного виртуальной машиной? Другими словами: мне интересно есть ли возможность написать свой собственный процессор, потом дебажить в его терминах? Есть ли возможность в терминах нового протектора строить графы, как-то их визуализировать и получать подсказки где есть циклы и что возможно стоит оптимизировать?
        +3
        Абсолютно также — в radare2 есть отладчик, и тоже можно заскриптовать. И граф строить тоже. Кроме того, в разработке ESIL — промежуточное представление, которое также можно обрабатывать скриптом. В-общем, я попробую повторить тот crackme и в radare2.
          0
          Да. Было бы здорово если бы Вы повторили! ;) Это многое даст в понимании возможностей возможному пользователю radare2
            +1
            А можете подробнее про ESIL рассказать? Спека уже есть где-то? Этот IR разворачивает в явном виде все side-effects машинных инструкций и вычисления фалгов? Как он по сравнению с REIL и BAP IR?
            И самое главное — насколько сильно этот ваш IR будет прибит гвоздями к radare? Очень хочется stand-alone библиотеку типа как libasmir.
              0
              BAP тоже в планах, кстати. Вот описание ESIL. Как видно, он ещё пока в активной разработке. А вот насколько сильно IR будет прибит гвоздями к radare2 пока неизвестно. Посмотрим. Однако, при наличии ресурсов и времени выделить ESIL в отдельную библиотеку не проблема.
                +1
                Хм… «No predefined bitness», «Register names have no specific syntax. They are just strings» — как планируется решать проблему того, что на каком-нибудь реальном cpu регистры обнуляются при переполнении и могут пересекаться между собой по содержимому?
                Можете показать, во что преобразуется код типа:
                xor rax, rax
                dec rax
                sub al, ah
                  0
                  Сейчас нет возможности посмотреть, отвечу вечером.
                  0
                  И еще один вопрос — почему у вашего IR такая навороченная грамматика? Это ж еще хуже чем BAP, прийдется городить настоящий большой парсер с AST и пр. что бы как-то это распарсить в стороннем приложении которое будет IR анализировать.
                    +1
                    Ввиду необходимости поддерживать очень разные архитектуры: от 8-битного 8051 до 48-битного (местами) TMS320C55x DSP. BAP неплохо ложится на архитектуры x86, arm, mips, etc, но изначально разрабатывался без оглядки на кучу других вариантов.
                      0
                      xvilka и d_olex Спасибо за Вашу дискуссию, много нового узнал ;)
            +2
            Также мне кажется Вам надо написать разделы установки и быстрого старта для двух категорий пользователей: линухоидов и виндузятников. Буквально недавно открыл страницу radare2 и решил его поставить на свою win7 x64 sp1, но на 15 мин. не осилил из чего сделал вывод, что я конечно рано или поздно разберусь, поставлю, но пока есть OllyDgb, IDA Pro, WinDBG, а radare2 подождет. Другими словами если нет возможности начать пользоваться продуктом в течении 15 мин., то он будет закинут в дальний ящик
              0
              Учтём, спасибо!
              0
              Как-то Bokken выглядит в последние пару лет мертвеньким…
                0
                Они обещали обновить после выхода 0.9.6, но что-то не торопятся. Тем не менее мы постоянно контактируем с его разработчиками и постоянно напоминаем об этом.
                  0
                  Да как-то сильно не торопятся, да… А без годного гуя, ИМХО, затея не имеет особого смысла.
                –1
                Еще одно предложение. Возможно это есть и я не увидел в radare2, если действительно есть, то прошу ткнуть носом.

                Мне нужна управляемая отладка непосредственно на уровне командной строки, чтобы я смог запустить radare2 на достаточно большом кол-ве файлов. Пример:
                1) Я пишу скрипт для radare2. В скрипте указываю какие брякпоинты поставить, что проверить и если что-то поставить, то что сделать дальше и т.д. и т.п.
                2) Далее указываю в ком. строке radare2 файловые пути к исследуемому файлу и скрипту
                3) Пишу какой-нить shell скрипт, если я под линухом или батник, если я на винде
                4) В конечном итоге узнаю результат той или иной необходимой мне проверке.

                Это нужно среди куча файлов и надо выявить файлы и понять принадлежит ли той а или программа в файле к той или иной функциональности. К примеру кластеризация вирусов по функционалу.

                  +1
                  Это есть. См. опцию командной строки -i
                  0
                  Лучше бы над более качественной реализацией уже существующих функций поработали. Я честно пытался использовать данный инструмент по прямому назначению какое-то время назад, но из-за того что отладчик был слишком сырой он у меня только в кач-ве консольного hex-редактора прижился.
                    –1
                    Оо, каким это образом? Я вот Hiew или 010 Editor врядли чем заменю )
                      0
                      Оба windows-only и оба без сорцов.
                      +2
                      А мы и работаем: покрываем постепенно всё тестами, проверяем их на каждом коммите и сканируем всё Coverity на регулярной основе. Так что работа идёт.
                      0
                      Что за шрифт на скриншотах? Попытался нагуглить, но увы.
                        0
                        Нашёл всё же: Terminus
                        0
                        Порадовали стрелочки переходов.
                        В своём дизассемблере PDP-11 тоже делал подобное:
                        image
                          –1
                          А в чем удобство?
                            +5
                            В том, что не надо смотреть искать какой цикл куда переходит. Очень удобная штука при отладке.
                          +1
                          Заслал €10. Полезная штука.

                          Only users with full accounts can post comments. Log in, please.