Есть ли декомпилятор C++? [закрытый]


У меня есть программа, в которой я потерял исходный код C++. Есть ли там хорошие декомпиляторы C++?

Я уже натыкался Бумеранг.

5 94

5 ответов:

можно использовать IDA Pro by Хекс-Лучи. Обычно вы не получите хороший C++ из двоичного файла, если вы не скомпилированы в отладочной информации. Приготовьтесь провести много ручного труда, обращая код.

Если вы не лишили двоичные файлы есть некоторая надежда, как IDA Pro может производить C-подобный код для вас, чтобы работать. Обычно это очень грубо, хотя, по крайней мере, когда я использовал его пару лет назад.

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

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

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

в зависимости от того, насколько велик и насколько хорошо написан исходный код, возможно, стоит начать снова на вашем любимом языке (который все еще может быть C++) и учиться на любых ошибках, сделанных в последней версии. Разве кто-то однажды не сказал о том, чтобы написать один, чтобы выбросить?

n.b. ясно, что если это огромный продукт, то он может не стоить времени.