Я ищу декомпилятор для C-программы. Бинарный файл представляет собой 32-разрядный исполняемый файл Linux x86. Objdump работает нормально, поэтому в основном я ищу что-то, что пытается восстановить источник C из источника asm.
Какой хороший декомпилятор C?
Ответ 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 и оставляет в пыли другие коммерческие (или бесплатные) декомпиляторы.
Кроме того, вы можете попробовать его или использовать демо-версию, чтобы почувствовать это и декомпилировать (очень) небольшие исполняемые файлы бесплатно.
Отныне (март/2019), в качестве альтернативы, у вас также есть Гидра из АНБ. Ghidra работает на Linux, Mac и Windows, пока установлен JDK 11. Он представлен "как бесплатный инструмент, сравнимый с рентгеновскими лучами".
Гидра чувствует себя более могущественным, однако Хоппер все еще кажется более интуитивным.
Смотрите также: Блог PepperMalware - Быстрый анализ образца Trickbot с помощью NSA Ghidra SRE Framework
Ответ 5
Снеговик (http://derevenets.com) выглядит неплохо. Сгенерированный код беспорядок, но работает.