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

На основе ваших решений я сделал несколько трюков:

Когда вы его используете, ваш HTML будет только

<div data-keep-ratio="75%">
    <div>Main content</div>
</div>

Чтобы использовать его таким образом, выполните: CSS:

*[data-keep-ratio] {
    display: block;
    width: 100%;
    position: relative;
}
*[data-keep-ratio] > * {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
}

и js (jQuery)

$('*[data-keep-ratio]').each(function(){ 
    var ratio = $(this).data('keep-ratio');
    $(this).css('padding-bottom', ratio);
});

И имея это, вы просто устанавливаете attr data-keep-ratio на высоту / ширину и все.

5
задан unwind 13 February 2009 в 08:33
поделиться

5 ответов

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

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

11
ответ дан 18 December 2019 в 07:58
поделиться

Управляемые языки могут легко декомпилироваться, потому что исполняемый файл должен содержать много метаданных для поддержки отражения.
Языки как C++ могут быть скомпилированы в собственный код. Структура программы может быть полностью изменена во время процессов compilation\translation.
Компилятор может легко replace\merge\delete части Вашего кода. Существует от № 1 до 1 отношения между исходным и скомпилировал (собственный) код.

5
ответ дан 18 December 2019 в 07:58
поделиться

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

2
ответ дан 18 December 2019 в 07:58
поделиться

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

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

1
ответ дан 18 December 2019 в 07:58
поделиться

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

1
ответ дан 18 December 2019 в 07:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: