Декомпилятор

Декомпилятор

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

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

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

Удачность декомпиляции зависит от объема информации, представленной в декомпилируемом коде; байт-код, используемый большинством виртуальных машин (таких как Java Virtual Machine или .NET Framework Common Language Runtime) часто содержит обширные метаданные, делающие декомпиляцию вполне выполнимой, в то время как машинный код более скуден и сложен в декомпиляции. В частности трудночитаемыми представляются вызовы подпрограмм или функций с косвенными адресами.

Если известно на каком языке была написана декомпилируемая программа, то в первую очередь дизассемблируются и анализируются библиотеки времени исполнения (runtime library) компилятора с этого языка, так как в основном компиляция программы сводится к вызовам с различными параметрами процедур из этих библиотек. Кроме того, многие компиляторы позволяют увидеть, в какой ассемблерный код превращаются операторы программы после компиляции. Эти конструкции становятся шаблонами для декомпилятора, поэтому процесс декомпиляции в некотором смысле похож на распознавание в машинном коде конечного набора подобных шаблонов. Легче всего распознаются вызовы и возврат из процедур. Они служат границами для восстановления операторов процедуры.

Некоторые компиляторы и инструменты используемые после компиляции создают обфусцированный код, с целью затруднить декомпиляцию.

Примеры декомпиляторов

  • .NET Reflector
  • Delphi Decompiler
  • JAD — JAva Decompiler
  • VB Decompiler
  • dotPeek - бесплатный .NET декомпилятор
  • В СССР декомпиляторы с языков PL/M-80 и Фортран-80 разрабатывались Н. А. Надольским в лаборатории Э. М. Пройдакова в ИПУ АН (1983—1984 гг).

См. также

  • Категория:Дизассемблеры



Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


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

  • декомпилятор — сущ., кол во синонимов: 1 • программа (114) Словарь синонимов ASIS. В.Н. Тришин. 2013 …   Словарь синонимов

  • декомпилятор — Программа, выполняющая декомпиляцию. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом EN decompiler …   Справочник технического переводчика

  • Vb-decompiler — это декомпилятор исполняемых модулей (EXE, Visual Basic 6.0. Может использоваться для анализа программ и восстановления исходного кода. Как известно, программы, разработанные на Visual Basic, могут быть скомпилированы либо в интерпретируемый p… …   Википедия

  • VB Decompiler — это декомпилятор исполняемых модулей (EXE, DLL, OCX), созданных при помощи Visual Basic 6.0. Может использоваться для анализа программ и восстановления исходного кода. Как известно, программы, разработанные на Visual Basic, могут быть… …   Википедия

  • Транслятор — Эта статья о языках программирования; о естественных языках см.: Перевод. Эта статья включает описание термина «Трансляция»; см. также другие значения. Транслятор  программа или техническое средство, выполняющее трансляцию программы.[1][2]… …   Википедия

  • Дизассемблер — транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера. По режиму работы с пользователем делятся на Автоматические Интерактивные Примером автоматических дизассемблеров может служить… …   Википедия

  • Компилятор — Эта статья включает описание термина «Компиляция»; см. также другие значения. Компилятор  программа или техническое средство, выполняющее компиляцию.[1][2][3] Компиляция  трансляция программы, составленной на исходном языке высокого… …   Википедия

  • .NET Framework — Для термина «.NET» см. другие значения. .NET Framework Тип Комп …   Википедия

  • WiX — Windows Installer XML (WiX) Тип Система создания инсталляторов Разработчик Rob Mensching и др. Написана на C++ и C# Операционная система Windows Последняя версия 3.5.2519 (31 января 2011) Тестовая версия …   Википедия

  • SpiderMonkey — Тип Движок JavaScript Автор Брендан Айк Разработчики Mozilla Foundation/Mozilla Corporation Написана на Си/C++ Аппаратная платформа Кроссплатформенное программно …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»