В новостях о декомпиляторе АНБ США почти затерялся другой интерактивный дизассемблер, действительно полностью открытый — 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-ядернике полностью автоматически.