REDasm 2 — очередной аналог IDA

good-penguin.png

В новостях о декомпиляторе АНБ США почти затерялся другой интерактивный дизассемблер, действительно полностью открытый — REDasm.

REDasm написан на C++11, интерфейс на Qt5. Архитектура модульная, с прицелом на простое добавление новых форматов и наборов инструкций (описания в JSON). Версия 2.0 вышла 4 марта.

Отличия новой версии:

  • Новый движок дизассемблера.
  • Новый виджет дизассемблера.
  • Новый движок сигнатур.
  • Новый виджет 16-ричного редактора.
  • Анализ в несколько потоков (по числу ядер).
  • Графы строятся на QtWebEngine.
  • Разделение програмы на интерфейс пользователя, библиотеку LibREDasm и базу данных.
  • Упрощение API библиотеки LibREDasm.
  • Переделка всех API эмуляции.
  • Улучшение эвристик выбора ARM/Thumb.
  • Улучшение листингов ARM.
  • Добавлены всплывающие подсказки на символах как в IDA.
  • Добавлена тёмная тема оформления.
  • Добавлены стрелки для переходов на предыдущую-следующую позиции в листинге.
  • Список недавних файлов.
  • Сохранение проектов (RDB).
  • Улучшение клавиатурных команд.
  • Перенос на CMake.
  • Анализ RTTI MSVC.
  • Обратное преобразование имён MSVC (MSVC Demangling).
  • Улучшен декомпилятор VB.
  • Загрузчик GBA (WIP).
  • Загрузчик N64 (WIP).
  • Объединены загрузчики ELF (порядок Little/Big endian и 32/64 бита).
  • Объединены загрузчики PE (порядок Little/Big endian).
  • Поддержка Clang для 64 бит.
  • Переработка пользовательского интерфейса.
  • Исправления ошибок.

Как видно из списка, программа ещё на той стадии, когда можно выбросить и переписать значительную часть кода, и возможны кардинальные улучшения архитектуры и интерфейса.

Для запуска выложенных линуксовых бинарников нужны:

  • libQt5WebEngine.so.5
  • libQt5WebEngineWidgets.so.5
  • libQt5WebChannel.so.5
  • libQt5Widgets.so.5
  • libQt5Gui.so.5
  • libQt5Core.so.5
  • libpthread.so.0
  • libstdc++.so.6
  • libgcc_s.so.1
  • libc.so.6

Личное впечатление — интерфейс похож на IDA, но не столь обкатан, проще, но ограниченнее. Нет ещё такой библиотеки форматов и вызываемых функций, как у IDA. Как пример необкатанности — неизвестный формат предлагает импортировать как MIPS32, а не как предыдущий. 32-килобайтный ELF (67K исходников на C) проанализировало за 16 секунд на 1ГГц 2-ядернике полностью автоматически.

Официальный сайт

>>> Версия 2.0 на Гитхабе

©  Linux.org.ru