25900 авторів і 91 редактор відповіли на 98952 питання,
розмістивши 129771 посилання на 81900 сайтів, приєднуйтесь!

Реклама партнерів:

На яких два види діляться дизасемблери по режиму роботи з користувачем?

РедагуватиУ обранеДрук

Одним із способів вивчення програм за відсутності вихідних текстів є дизасемблювання - переклад двійкових кодів процесора в легким для читання мнемонічні інструкції. Це однонаправлений процес з втратами і тому, автоматично відновити вихідний текст (за винятком міток і коментарів) математично неможливо.

При повторному асемблюванні відновленого тексту немає гарантії отримати той же самий код, а значить, отримана програма, швидше за все, відмовиться працювати. Будь-яка спроба модифікації дизасемблювати тексту розвалить програму остаточно. Справа в тому, що асемблер замінює всі мітки на реальні зміщення, інакше кажучи - на константи. При внесенні змін до програми необхідно скорегувати всі посилання на мітки.

Дізассемблер - транслятор, що перетворює машинний код, об'єктний файл або бібліотечні модулі в текст програми на мові асемблера.

Дизасемблери по режиму роботи з користувачем діляться на:

  • Автоматичні;
  • Інтерактивні.

Прикладом автоматичних дизассемблеров може служити Sourcer. Такі дизасемблери генерують готовий лістинг, який можна потім правити в текстовому редакторі. Приклад інтерактивного - IDA. Він дозволяє змінювати правила дизассемблирования і є досить зручним інструментом для дослідження програм.

Дизасемблери бувають однопрохідні і багатопрохідні. Основні труднощі при роботі дизассемблера - відрізнити дані від машинного коду, тому на перших проходах автоматично або інтерактивно збирається інформація про межі процедур і функцій, а на останньому проході формується підсумковий лістинг.

Інтерактивність дозволяє поліпшити цей процес, так як переглядаючи дамп дізассембліруемой області пам'яті, програміст може відразу виділити рядкові константи, дати змістовні імена відомим точкам входу, прокоментувати розібрані їм фрагменти програми.

Найчастіше дизассемблер використовують для аналізу програми (або її частини), вихідний текст якої невідомий - з метою модифікації, копіювання або злому. Рідше - для пошуку помилок (Багів) в програмах і компіляторах, а також для аналізу та оптимізації створюваного компілятором машинного коду.

Реклама партнерів:

РедагуватиУ обранеДрук


«На яких два види діляться дизасемблери по режиму роботи з користувачем?»

В інших пошукових системах:

GoogleЯndexRamblerВікіпедія

» » На яких два види діляться дизасемблери по режиму роботи з користувачем?