Декомпиляция | это... Что такое Декомпиляция? (original) (raw)

Декомпиляция

Декомпиляция

Декомпиля́тор — это программа, транслирующая исполняемый модуль (полученный на выходе компилятора) в относительно эквивалентный исходный код на языке программирования высокого уровня. Для сравнения, дизассемблер транслирует исполняемый модуль программы в текст на языке ассемблера.

Декомпиля́ция — процесс воссоздания исходного кода декомпилятором.

Удачность декомпиляции зависит от объема информации, представленной в декомпилируемом коде; байт-код, используемый большинством виртуальных машин (таких как JVM для машинный код более скуден и сложен в декомпиляции.

Если известно на каком языке была написана декомпилируемая программа, то в первую очередь дизассемблируются и анализируются библиотеки времени исполнения (run-time library) компилятора с этого языка, так как в основном компиляция программы сводится к вызовам с различными параметрами процедур из этих библиотек. Кроме того, многие компиляторы позволяют увидеть, в какой ассемблерный код превращаются операторы программы после компиляции. Эти конструкции становятся шаблонами для декомпилятора, поэтому процесс декомпиляции в некотором смысле похож на распознавание в машинном коде конечного набора подобных шаблонов. Легче всего распознаются вызовы и возврат из процедур. Они служат границами для восстановления операторов процедуры. В СССР декомпиляторы с языков PL/M-80 и Фортран-80 разрабатывались Н.А. Надольским в лаборатории Э.М. Пройдакова в ИПУ АН (1983--1984 гг).

Декомпиляция, в частности, используется при обратной разработке программ.

См. также

Wikimedia Foundation.2010.

Смотреть что такое "Декомпиляция" в других словарях: