Какие типы исполняемых файлов могут быть декомпилированы?

StackOverflow https://stackoverflow.com/questions/43672

  •  09-06-2019
  •  | 
  •  

Вопрос

Я думаю, что исполняемые файлы Java (jar-файлы) тривиальны для декомпиляции и получения исходного кода.

А как насчет других языков?.net и все такое?

Какие все языки могут компилироваться только в декомпилируемый код?

Это было полезно?

Решение

В целом, такие языки, как Java, C # и VB.NET, относительно легко декомпилировать, поскольку они компилируются на промежуточный язык, а не на чистый машинный язык.В своей IL-форме они сохраняют больше метаданных, чем код C при компиляции на машинный язык.

Технически вы получаете не исходный код, а вариацию исходного кода, которая при компиляции вернет вам скомпилированный код обратно.Он не идентичен исходному коду, поскольку такие вещи, как комментарии, аннотации и директивы компилятора, обычно не переносятся в скомпилированный код.

Другие советы

Управляемые языки могут быть легко декомпилированы, поскольку исполняемый файл должен содержать много метаданных для поддержки отражение.
Такие языки, как C++, могут быть скомпилированы в машинный код.Структура программы может быть полностью изменена в процессе компиляции / перевода.
Компилятор может легко заменить \ объединить \ удалить части вашего кода.Между исходным и скомпилированным (машинным) кодом не существует соотношения 1 к 1.

.NET очень легко декомпилируется.Лучшим инструментом для этого был бы .NET отражатель недавно приобретен компанией RedGate.

Большинство языков можно декомпилировать, но некоторые декомпилировать легче, чем другие..Net и Java помещают больше информации об исходной программе в исполняемые файлы (имена методов, имена переменных и т.д.), Чтобы вы получили обратно больше исходной информации.

C ++, например, будет переводить переменные, функции и т.д.к адресам памяти (да, я знаю, что это грубое упрощение), поэтому декомпилятор не будет знать, какой материал был вызван.Но вы все равно можете вернуть часть структуры программы.

VB6, если он скомпилирован в pcode, также можно декомпилировать почти до полного исходного кода, используя P32Dasm, Flash (или actionscript) также можно декомпилировать в полный исходный код, используя что-то вроде Вспышка

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top