Дизассемблер

Поделись знанием:
Это текущая версия страницы, сохранённая 109.248.188.147 (обсуждение) в 08:01, 19 октября 2016. Вы просматриваете постоянную ссылку на эту версию.

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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

По режиму работы с пользователем делятся на

  • Автоматические
  • Интерактивные

Примером автоматических дизассемблеров может служить Sourcer[1]. Такие дизассемблеры генерируют готовый листинг, который можно затем править в текстовом редакторе. Пример интерактивного — IDA. Он позволяет изменять правила дизассемблирования и является весьма удобным инструментом для исследования программ.

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

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

Обычно однопроходный дизассемблер (как и построчный ассемблер) является составной частью отладчика.

Примеры программ-дизассемблеров

См. также

Литература

Примечания

  1. [www.program-transformation.org/Transform/SourcerDisassembler Sourcer Disassembler. The Program Transformation Wiki]

Ссылки

  • [www.wasm.ru/toollist.php?list=13 Инструменты > Дизассемблеры] (рус.). wasm.ru. — Популярные дизассемблеры. Проверено 1 сентября 2009. [www.webcitation.org/617huqr1j Архивировано из первоисточника 22 августа 2011].
  • [www.thefreecountry.com/programming/disassemblers.shtml Free Disassemblers, Decompilers, Hex Editors & Hex Viewers] (англ.). thefreecountry.com. Проверено 1 сентября 2009. [www.webcitation.org/617hvcuUJ Архивировано из первоисточника 22 августа 2011].
  • [www.openrce.org/articles/ OpenRCE (Open Reverse Code Engineering)] (англ.). — Various Disassembler Resources and Plug-ins. Проверено 1 сентября 2009. [www.webcitation.org/617hw5Kga Архивировано из первоисточника 22 августа 2011].
  • [www.program-transformation.org/Transform/DisAssembly Program Transformation Wiki / Dis Assembly] (англ.). Проверено 1 сентября 2009. [www.webcitation.org/617hwkBUM Архивировано из первоисточника 22 августа 2011].