Avast выпускает декомпилятор машинного кода RetDec

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

Компания работала над RetDec семь лет и выпустила декомпилятор, «чтобы помочь сообществу кибербезопасности бороться с вредоносным ПО». Декомпилятор можно использовать для анализа программы без ее запуска.

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

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

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

RetDec решает вышеупомянутые проблемы с помощью большого набора поддерживаемых архитектур и форматов файлов, а также собственных эвристик и алгоритмов для декодирования и реконструкции приложений. RetDec также является единственным декомпилятором в своем масштабе, использующим проверенную инфраструктуру LLVM и предоставляемым бесплатно по лицензии MIT.

RetDec доступен всем бесплатно. Вы можете загрузить исходный код с GitHub или вместо этого 32- или 64-разрядный исполняемый файл для Windows. Релиз достаточно большой, архив имеет размер более 250 Мегабайт.

декомпилятор avast retdec

Avast отмечает, что декомпилятор поддерживает Windows 7 и новее, а также Linux в настоящее время, а Mac OS X поддерживается неофициально.

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

В Windows необходимо установить распространяемый компонент Microsoft Visual C ++ для Visual Studio 2015 и другие программы, перечисленные в Окружающая среда Windows Вики-страница. На мой взгляд, это лучше всего делать на виртуальной машине или на машине, предназначенной для этой задачи.

Набор функций RetDec по версии Avast:

  • Поддерживаемые форматы файлов: ELF, PE, Mach-O, COFF, AR (архив), Intel HEX и необработанный машинный код.
  • Поддерживаемые архитектуры (только 32b): Intel x86, ARM, MIPS, PIC32 и PowerPC.
  • Статический анализ исполняемых файлов с подробной информацией.
  • Обнаружение компилятора и упаковщика.
  • Загрузка и расшифровка инструкций.
  • Сигнатурное удаление статически связанного библиотечного кода.
  • Извлечение и использование отладочной информации (DWARF, PDB).
  • построение инструктивных идиом.
  • Обнаружение и реконструкция иерархии классов C ++ (RTTI, vtables).
  • Удаление символов из бинарных файлов C ++ (GCC, MSVC, Borland).
  • Реконструкция функций, типов и конструкций высокого уровня.
  • Интегрированный дизассемблер.
  • Вывод на двух языках высокого уровня: C и язык, подобный Python.
  • Создание графиков вызовов, графиков потока управления и различной статистики.

Avast выпустил веб-версия RetDec, но пришлось отключить его, так как это вызывало «чрезвычайно высокую нагрузку» на серверы компании.

Там есть также плагин для IDA, которую пользователи дизассемблера могут использовать для запуска декомпиляций непосредственно в программе.

Вывод

RetDec — это специализированный инструмент, который не используется большинством пользователей компьютеров. Процедура установки не очень проста, но достаточно хорошо объяснена в Wiki. Однако это открытый исходный код, и кажется, что у Avast есть среднесрочные и долгосрочные планы на декомпилятор по его дальнейшему улучшению. (через Родившийся)