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

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

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

обычно сгенерированный код декомпилятором код подвергается масштабному рефакторингу путём его анализа и отладки. если код только обфусцирован, то реверсится он таким макаром очень быстро, поскольку типы уже есть.
Arslan Egemberdiev
Arslan Egemberdiev
9 617
Лучший ответ
Нет, невозможна. Реверсинг машинного кода до языка высокого уровня невозможен технически. Только дизассемблер.
Виталий Букрин
Виталий Букрин
65 828
Это только теоретически возможно.
На практике почти не реально полное восстановление кода.
почему теоретически?? ?
декомпиляция

Текст программы на языке высокого уровня ты, конечно, не получишь и 100% успех не гарантирован
Да, возможна, но с некоторыми оговорками и не всегда.
Miras .
Miras .
4 505
Не плохая идея, но увы.
Получить один и тот же вариант порой можно десятком способов, и при запущенной программе не все условия программы исполняются.
А вообще идея забавная.
BA
Bagdat Amanzholov
2 631
и практически.... ДЕКОМПИЛЯЦИЯ!
полной разборкой кода занимаются вирусные аналитики (из антивирусных лабораторий)
они могут декомпилить даже упакованные 5-7раз коды в оболочку
Сикош 500 учи мат часть, декомпилятором можно получить только относительно похожий код который нех работать не будет, машинный код перевести в высокоуровневый почти не реально( если не брать простейшие программы типа хеловорда)
Не только возможно, но и широко применяется.
Декомпиляция — процесс воссоздания исходного кода декомпилятором!
Главное не нарушить лицензию ПО. За это штрафы и статьи)
Daulet Uvashev
Daulet Uvashev
1 996
декомпиляцией это зовётся. возможна, да. но, так как компиляция - процесс с потерями, первоначального кода байт в байт не получим. точность восстановленного кода так же зависит от конкретного ЯП.
Дима Попов
Дима Попов
945
Руслан Жулавшин А если использовать квантовые компьютеры? Я читал, что на квантовом компьютере возможно все!

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