Interested Article - Декомпилятор
- 2021-04-24
- 1
Декомпиля́тор — это программа, транслирующая исполняемый модуль (полученный на выходе компилятора ) в эквивалентный исходный код на языке программирования высокого уровня.
Декомпиля́ция — процесс воссоздания исходного кода декомпилятором.
Декомпиляция, в частности, используется при обратной разработке программ.
Удачность декомпиляции зависит от объема информации, представленной в декомпилируемом коде. Байт-код , используемый большинством виртуальных машин (таких как Java Virtual Machine или .NET Framework Common Language Runtime ) часто содержит обширные метаданные, делающие декомпиляцию вполне выполнимой, в то время как машинный код более скуден и сложен в декомпиляции. В частности трудночитаемыми представляются вызовы подпрограмм или функций с косвенной адресацией вызовов (в терминах языков программирования высокого уровня — вызовы через указатели на функции/процедуры).
Если известно на каком языке была написана декомпилируемая программа, то в первую очередь дизассемблируются и анализируются библиотеки времени исполнения (RTL — runtime library) компилятора с этого языка, так как в основном компиляция программы сводится к вызовам с различными параметрами процедур из этих библиотек. Кроме того, многие компиляторы позволяют увидеть, в какой ассемблерный код превращаются операторы программы после компиляции. Эти конструкции становятся шаблонами для декомпилятора, поэтому процесс декомпиляции в некотором смысле похож на распознавание в машинном коде конечного набора подобных шаблонов. Легче всего распознаются вызовы процедур и возвраты из них. Они служат границами для восстановления операторов процедуры.
Некоторые компиляторы и инструменты, используемые после компиляции, подвергают программный код обфускации с целью затруднить декомпиляцию.
Декомпиляторы можно рассматривать как состоящие из ряда фаз, каждая из которых вносит свой вклад в определенные аспекты общего процесса декомпиляции.
Примеры декомпиляторов
- .NET Reflector , — для декомпиляции сборок .NET
- — JAva Decompiler
- В СССР декомпиляторы с языков PL/M-80 и Фортран-80 разрабатывались Н. А. Надольским в лаборатории Э. М. Пройдакова в ИПУ АН (1983—1984 гг).
См. также
Для улучшения этой статьи
желательно
:
|
|
Это
заготовка статьи
о
программном обеспечении
. Помогите Википедии, дополнив её.
|
- 2021-04-24
- 1