Декомпилатор: Разлика между версии
Изтрито е съдържание Добавено е съдържание
Редакция без резюме |
Редакция без резюме |
||
Ред 1:
= Какво е това? =
Декомпилатор е [[компютърна програма]], която изпълнява обратната операция на тази на [[компилатор]]. Това е превеждането на програмен код от относително ниско ниво на абстракция (често проектиран да бъде четен от компютри, а не от хора)
= Как работи? =
Декомпилация е действието от използването на декомпилатор, но може да се има в предвид и самия резултат от декомпилатора. Успехът на декомпилацията зависи от количеството информация, предоставено от
метаданни и функции на високо ниво, които правят декомпилацията лесно осъществима. Присъствието на дебъг данни
=== Етапи на Декомпилация ===
Ред 10:
==== Зареждане ====
Първата етап зарежда машинния код или междинния език на програмата. Би трябвало да открие основни факти за зададената програма
==== Преобразуване ====
Ред 20:
==== Анализ на програма ====
Различни анализи на програма могат да се прилага на IR. По-специално
==== Анализ на потокът данни ====
Местата, където различните регистри се дефинират и използват, трябва да бъдат проследени с анализ на потокът данни. Същия анализ трябва да бъде приложен на места, които се използват за временни и локални данни. Различни имена могат да се формират за всеки свързан набор от стойностни дефиниции и употреби. Възможно е едно и също място в паметта да се използва за повече от една променлива в различни части от програмата. Анализът може да покаже дори
==== Анализ на типове ====
Ред 29:
==== Структуриране ====
Предпоследния етап включва структуриране на IR в конструкции от високо ниво
==== Генерация на код ====
|