Есть ли программа для декомпиляции Delphi? [закрыто]

StackOverflow https://stackoverflow.com/questions/335104

Вопрос

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

Однако была одна большая проблема. Я случайно узнал, что программа, которую он декомпилировал, была написана на Delphi, которая полна концепций, которые трудно перевести на C. Но я был действительно впечатлен результатами работы декомпилятора, и это заставило меня задуматься. Есть ли что-нибудь, что может сделать это для Delphi?

Лучший инструмент для декомпиляции, который я видел для Delphi, это DeDe. Он может делать много вещей, но он даже не пытается выдавать код Object Pascal в качестве своего вывода, и он не обновлялся с Delphi 6. Есть ли что-нибудь лучше там?

Это было полезно?

Решение

Я не думаю, что есть декомпиляторы машинного кода, которые генерируют код на Паскале. Большинство " Delphi decompilers " разбирать форму и данные RTTI, но фактически не декомпилировать машинный код. Я могу только рекомендовать использовать что-то вроде DeDe (или подобное программное обеспечение ) для извлечения символьную информацию в сочетании с декомпилятором C, а затем преобразовать декомпилированный код C в Delphi (существует много конвертеров исходного кода).

Другие советы

Вы можете использовать IDR . Это отличная программа для декомпиляции Delphi, это обновление до текущей версии. Версии Delphi и у него много функций.

Вот список: http://delphi.about.com/od/ devutilities / a / decompiling_3.htm (и на этой странице упоминается еще несколько: http: // www.program-transformation.org/Transform/DelphiDecompilers )

Я использовал DeDe в некоторых случаях, но на самом деле он не такой мощный, и он не соответствует современным версиям Delphi (последняя версия, которую он поддерживает, я полагаю, Delphi 7)

Такие языки, как Delphi, C и C ++, компилируются в машинный код, свойственный процессору, и в выходных исполняемых файлах метаданных практически нет или они отсутствуют. Это отличается от Java или .Net, которые компилируются в объектно-ориентированный независимый от платформы байт-код, который сохраняет имена методов, параметры методов, классы и пространства имен и другие метаданные.

Таким образом, декомпиляция намного менее полезна для кода Delphi или C. Однако в Delphi обычно есть встроенные данные форм для любой формы в проекте (сгенерированные строкой $ R * .dfm), а также метаданные для всех опубликованных свойств, поэтому инструмент, специфичный для Delphi, сможет извлечь эту информацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top