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

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

Компания Avast открыла доступ к своему декомпилятору RetDec, тем самым сделав еще один вклад в борьбу с вредоносным ПО. Инструмент позволяет изучать исходный код и отслеживать действия приложений без их непосредственного запуска. Исходники декомпилятора и других связанных с ним инструментов теперь доступны на GitHub.

Возможности RetDec

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

Как использовать декомпилятор?

Самый простой способ — загрузить исполняемый файл через официальный сайт и нажать кнопку декомпиляции. После того как декомпилятор отработает, программа представит результат:

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

Использование REST API — это еще один вариант, позволяющий создавать приложения, взаимодействующие с RetDec при помощи HTTP-запросов. Рекомендованный способ взаимодействия с компилятором через API — использование библиотеки retdec-python.

Наконец, поскольку исходный код декомпилятора доступен на GitHub, его можно установить и использовать на ПК. В настоящее время RetDec поддерживает операционные системы Linux и Windows.

Преимущества RetDec

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

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

Источник: блог Avast