Перейти к содержанию

Реинженеринг/Дизассемблеры

Материал из Викиучебника — открытых книг для открытого мира

Эта страница описывает технологии и программы для дизассемблирования. Все перечисленные программы обязаны включать сайт, с которого их можно скачать (только для бесплатного/открытого ПО) или домашнюю страницу (в случае с платными программами). Мы не собираемся ограничивать эту викикнигу только бесплатными программами, даже если они наиболее популярны для начинающих. Если список дизассемблеров станет сильно большим, то его содержимое может быть перемешено в приложение.

Будущее обсуждение дизассемблеров, и процесса дизассемблирование будет обсуждается в последующих секциях.

Что такое дизассемблер ?

[править]

По сути, дизассемблер является полной противоположностью ассемблеру. Если Ассемблер конвертирует код написанный на языке ассемблера в двоичный машинный код, то дизассемблер обращает этот процесс и пытается воссоздать код ассемблера из машинного кода.

Так как большинство ассемблеров один-в-один соответствуют машинным инструкциям, процесс дизассемблирования относительно прямоходный, и базовый дизассемблер может быть созданы простым побайтным чтением, и просмотром таблицы соответствий. Конечно дизассемблирование имеет свои собственные проблемы и подвохи, и они будут освещены далее.

Многие дизассемблеры могут иметь настройки для вывода инструкций ассемблера в Intel, AT&T, или (частично) HLA синтаксисы.

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

[править]

Дизассемблеры под Windows

[править]

Для удобства, мы разделили дизассемблеры под Windows на 2 категории: Коммерческие, и Бесплатные инструменты.

IDA Pro
Это профессиональный дизассемблер, крайне мощный, и имеющий весь набор необходимых возможностей. Обратная сторона IDA это цена — 430 долларов США за стандартную однопользовательскую лицензию. Естественно такая цена заслуживает значения, данная викикнига не рассматривает именно IDA Pro, так-как цена исключительна. Существуют две бесплатные версии; смотрите ниже.
http://www.datarescue.com/idabase/
PE Explorer
Дизассемблер «сосредоточенный на простоте использования, доходчивости и навигации». Он не наделен такими возможностями как IDA Pro, однако взамен функциональности, стоит гораздо меньше: $130
http://www.heaventools.com/PE_Explorer_disassembler.htm
W32DASM
Отличнейший 16/32-битный дизассемблер под Windows
http://members.cox.net/w32dasm/

Бесплатные инструменты

[править]
IDA 3.7
Этот консольный инструмент очень похож на IDA Pro, однако более ограничен. Может дизассемблировать код для процессоров Z80, 6502, Intel 8051, Intel i860, и PDP-11, так-же хорошо поддерживает инструкции x86 вплоть до 486.
http://www.simtel.net/product.php
Ghidra
Бесплатный дизассемблер от АНБ, конкурирующий с IDA Pro. Поддерживает большинство процессоров, имеет фреймворк для создания скриптов, чтобы расширить функционал.
https://www.ghidra-sre.org/