Какой хороший декомпилятор C?

Я ищу декомпилятор для C-программы. Бинарный файл представляет собой 32-разрядный исполняемый файл Linux x86. Objdump работает нормально, поэтому в основном я ищу что-то, что пытается восстановить источник C из источника asm.

Ответ 1

Вторичные Hex-лучи, но если вы не можете оправдать эту стоимость, Boomerang может работать.

Ответ 2

Если у вас есть деньги, Decompiler Hex-Rays может стоить вашего времени.: -)

Ответ 3

Как бы ни была полезна МАР, она стоит немалых денег. Не уверен насчет вашего конкретного случая использования, но Plasma, похоже, сработает: "Plasma - это интерактивный дизассемблер для x86/ARM/MIPS. Он может генерировать псевдокод с отступом и цветным синтаксисом".

Если вы ищете что-то более похожее на IDA, я настоятельно рекомендую Radare2. Также есть ODA, онлайн-дисслекер, если вы не хотите ничего устанавливать.

Новым дополнением является Binary Ninja, и хотя оно еще даже не близко к возможностям IDA или Radare, это дешевая и хорошая утилита для начинающих.

Обновление: После этого комментария АНБ выпустило Ghidra, которая является полностью открытым исходным кодом и бесплатна. Это полнофункциональная среда RE с декомпилятором высокого класса.

Ответ 4

Для двоичной декомпиляции я купил персональную лицензию Hopper https://www.hopperapp.com.

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

  • имеет интуитивно понятный и продуманный графический интерфейс;
  • работает в MacOS и Linux;
  • обеспечивает разумный C-подобный вывод декомпилятора;
  • декомпилирует 32-битные и 64-битные двоичные файлы;
  • поддерживает двоичные файлы Mach-O (Mac и iOS), двоичные файлы Windows PE32/32+/64 и двоичные файлы ELF;
  • имеет очень регулярные бесплатные обновления;
  • Стоимость лицензии в районе 100 долларов США не может быть побеждена.

IMO, соотношение цена/качество довольно легко превосходит IDA/Hex-ray и оставляет в пыли другие коммерческие (или бесплатные) декомпиляторы.

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

Hopper

Отныне (март/2019), в качестве альтернативы, у вас также есть Гидра из АНБ. Ghidra работает на Linux, Mac и Windows, пока установлен JDK 11. Он представлен "как бесплатный инструмент, сравнимый с рентгеновскими лучами".

Ghidra

Гидра чувствует себя более могущественным, однако Хоппер все еще кажется более интуитивным.

Смотрите также: Блог PepperMalware - Быстрый анализ образца Trickbot с помощью NSA Ghidra SRE Framework

Ответ 5

Снеговик (http://derevenets.com) выглядит неплохо. Сгенерированный код беспорядок, но работает.