Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Возможно ли обратная компиляция? Теоретически. Вернуть любую программу в исходники.

4WcuMph25ejK Мудрец (16746), закрыт 12 лет назад
Если был процесс компиляции, то теоретически его можно сделать обратным.
Лучший ответ
Голый Мужик Мыслитель (9631) 13 лет назад
а вы можете раздавить пакет с чипсами, а потом склеить их обратно, как было? это насчёт "теоретически".
в общем случае, можно декомпилировать исполняемый образ и получить валидный, компилируемый код. но он будет лишь напоминать первоначальный.
в случае кода на промежуточном языке для сред исполнения (например, .net, jvm) можно получить соответствие около 90% - это уже круто.
код на Delphi тоже неплохо декомпилируется за счёт анализа использования VCL в коде.
код на C декомпилируется за счёт анализа crt и api-вызовов, но плохо.
код на C++ декомпилируется отвратительно.

обычно сгенерированный код декомпилятором код подвергается масштабному рефакторингу путём его анализа и отладки. если код только обфусцирован, то реверсится он таким макаром очень быстро, поскольку типы уже есть.
Остальные ответы
!!!ALEXEY KOZHEKIN!!! Гуру (2631) 13 лет назад
Не плохая идея, но увы.
Получить один и тот же вариант порой можно десятком способов, и при запущенной программе не все условия программы исполняются.
А вообще идея забавная.
Вася Пупкин Гуру (4535) 13 лет назад
Да, возможна, но с некоторыми оговорками и не всегда.
Silenser Оракул (65965) 13 лет назад
Нет, невозможна. Реверсинг машинного кода до языка высокого уровня невозможен технически. Только дизассемблер.
~~ Просветленный (31858) 13 лет назад
Это только теоретически возможно.
На практике почти не реально полное восстановление кода.
Денис Павлов Гуру (2550) 13 лет назад
и практически.... ДЕКОМПИЛЯЦИЯ!
полной разборкой кода занимаются вирусные аналитики (из антивирусных лабораторий)
они могут декомпилить даже упакованные 5-7раз коды в оболочку
ВладимирМыслитель (8447) 13 лет назад
учи мат часть, декомпилятором можно получить только относительно похожий код который нех работать не будет, машинный код перевести в высокоуровневый почти не реально( если не брать простейшие программы типа хеловорда)
Денис Павлов Гуру (2550) ну можешь и так считать, никто не мешать проект наш 279 классов и интерфейсов разобрали в корне за 2 дня(спецы из каспера) и вернули ПОЧТИ ИСХОДНИК... просто без одного, 3уровень нахождения директорий был нарушен(4- не было, а все легки в 3) но это не беда, в classpath были данные что и где
ШОК ШК Мастер (1999) 13 лет назад
Не только возможно, но и широко применяется.
Декомпиляция — процесс воссоздания исходного кода декомпилятором!
Главное не нарушить лицензию ПО. За это штрафы и статьи)
Андрей Андреевич Мудрец (12631) 13 лет назад
почему теоретически?? ?
декомпиляция

Текст программы на языке высокого уровня ты, конечно, не получишь и 100% успех не гарантирован
Гедеван Профи (945) 13 лет назад
декомпиляцией это зовётся. возможна, да. но, так как компиляция - процесс с потерями, первоначального кода байт в байт не получим. точность восстановленного кода так же зависит от конкретного ЯП.
4WcuMph25ejKМудрец (16746) 10 лет назад
А если использовать квантовые компьютеры? Я читал, что на квантовом компьютере возможно все!
Похожие вопросы