Презентация, доклад по информатике на тему: Декомпиляторы

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

Слайд 1
Декомпиляторы

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

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

эквивалентный исходный код на языке программирования высокого уровня.

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

Слайд 3Удачность декомпиляции зависит от объема информации, представленной в декомпилируемом коде. Байт-код,

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

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

Слайд 4Если известно на каком языке была написана декомпилируемая программа, то в

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

Если известно на каком языке была написана декомпилируемая программа, то в первую очередь дизассемблируются и анализируются библиотеки

Слайд 5Примеры декомпиляторов
FernFlower
.NET Reflector, dotPeek — для декомпиляции сборок .NET
ILSpy
Delphi Decompiler
JAD — JAva Decompiler
В

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


Примеры декомпиляторовFernFlower.NET Reflector, dotPeek — для декомпиляции сборок .NETILSpyDelphi DecompilerJAD — JAva DecompilerВ СССР декомпиляторы с языков PL/M-80 и

Слайд 6Декомпиляция EXE-файлов

Декомпиляция подразумевает воссоздание исходного кода программы на том языке, на

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

Декомпиляция EXE-файлов  Декомпиляция подразумевает воссоздание исходного кода программы на том языке, на котором она была написана.

Слайд 7Для чего нужна декомпиляция exe файлов в программирование?
- взлом коммерческих программ

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

Слайд 8Способы декомпиляции EXE-файлов
Декомпиляция может быть полезной автору ПО, который потерял исходные

коды, или просто пользователям, желающим узнать свойства той или иной программы. Для этого существуют специальные программы-декомпиляторы.
Способы декомпиляции EXE-файловДекомпиляция может быть полезной автору ПО, который потерял исходные коды, или просто пользователям, желающим узнать

Слайд 9Один из величайших декомпиляторов, который сейчас находится здесь, - это, безусловно,

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

Слайд 10В чем разница между дизассемблером и декомпилятором?
Когда у вас есть двоичная

программа (исполняемый файл, библиотека DLL,...), она состоит из инструкций процессора. Язык этих инструкций называется сборкой (или сборщиком). В двоичном коде эти команды кодируются двоично, поэтому процессор может их напрямую выполнять. Дисассемблер принимает этот двоичный код и переводит его в текстовое представление. Этот перевод обычно 1 к 1, то есть одна команда показана как одна строка текста. Эта задача сложна, но проста, программа просто должна знать все разные инструкции и как они представлены в двоичном формате.
В чем разница между дизассемблером и декомпилятором?Когда у вас есть двоичная программа (исполняемый файл, библиотека DLL,...), она

Слайд 11С другой стороны, декомпилятор выполняет гораздо более сложную задачу. Он принимает

либо двоичный код, либо вывод дизассемблера (который в основном тот же, что и 1-к-1), и создает высокоуровневый код.
С другой стороны, декомпилятор выполняет гораздо более сложную задачу. Он принимает либо двоичный код, либо вывод дизассемблера

Слайд 12 всё!!!

всё!!!

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть