Декомпилировать Delphi
Раздел 1. Об обратном проектировании
Декомпилировать? Обеспечить регресс? Расшифровать? (Декомпиляция? Реверс? Взлом?)
Проще говоря, декомпиляция — это обратный процесс компиляции: перевод исполняемого файла на язык более высокого уровня. Если вы потеряли исходную программу вашего проекта Delphi и у вас есть только исполняемый файл: обратный инжиниринг (декомпиляция) полезен, если исходная программа больше не доступна.
Ага, "исходная программа недоступна", значит ли это, что мы можем декомпилировать Delphi-проекты, разработанные другими программистами? Ну, правильно или нет...
Возможна ли настоящая декомпиляция? (Возможна ли настоящая декомпиляция?)
Нет, конечно нет. Полностью автоматическая декомпиляция невозможна — ни один декомпилятор не может правильно восстановить исходный код.
Когда проект Delphi компилируется и компонуется для создания автономного исполняемого файла, большинство имен, используемых в программе, преобразуются в адреса. Потеря имен означает, что декомпилятор должен создать уникальные имена для всех констант, переменных, функций и процедур. Даже если декомпиляция в некоторой степени успешна, полученному «исходному коду» все равно не хватает первоначального значения имен переменных и функций.
Очевидно, что синтаксис исходного языка программирования в исполняемом файле больше не существует. Поэтому декомпилятору очень сложно перевести непрерывные инструкции машинного языка исполняемого файла и определить инструкции исходного языка.
Зачем и когда использовать (Почему и когда использовать.)
Обратное проектирование используется по нескольким причинам:
Это законно? (Это законно?)
Реверс-инжиниринг — это не расшифровка, хотя провести четкую границу между ними сложно. Компьютерные программы защищены законами об авторском праве и товарных знаках. В разных странах существуют разные интерпретации прав владельцев авторских прав. Наиболее распространенное объяснение состоит в том, что декомпиляция допустима при следующих обстоятельствах:
В целях лучшего объяснения, но описание интерфейса больше недоступно. В целях исправления ошибок, но правообладатель не может произвести исправление. Конечно, если вы не уверены, разрешено ли вам дизассемблировать исполняемые файлы тех или иных программ, вам следует проявить осторожность или обратиться к своему адвокату.
ПРИМЕЧАНИЕ. Если вы ищете как взломать Delphi, генератор ключей или просто серийный номер: вы ищете не там. Пожалуйста, убедитесь, что все, что вы пишете или представляете здесь, предназначено только для исследовательских и образовательных целей.