Оглавление
Дизассемблировщик
-
Определение и использование дизассемблера
- Дизассемблер переводит машинный код в язык ассемблера.
- Дизассемблирование часто форматируется для удобства чтения человеком.
- Дизассемблеры используются для анализа и оптимизации кода, восстановления исходного кода и анализа вредоносных программ.
-
Отличие от декомпилятора
- Дизассемблеры ориентированы на языки высокого уровня, а не на ассемблер.
- Исходный код на ассемблере может содержать комментарии и константы, которые удаляются дизассемблером.
-
Проблемы дизассемблирования
- Дизассемблер может генерировать код, который не воспроизводит исходный двоичный файл.
- Проблемы возникают при модификации программы, требующей изменения дизассемблированного кода.
- Дизассемблеры не всегда могут определить, какие части файла являются исполняемым кодом.
- Шифрование может усложнить дизассемблирование.
-
Примеры дизассемблеров
- Дизассемблеры могут быть автономными или интерактивными.
- Некоторые дизассемблеры интегрированы с отладчиками, например, objdump и OllyDbg.
-
Обзор дизассемблеров
- В статье перечислены различные дизассемблеры, включая автономные и интерактивные, а также специализированные для конкретных архитектур.
-
Дизассемблеры и эмуляторы
- Динамический дизассемблер встроен в эмуляторы для отслеживания выполнения инструкций.
- Дизассемблеры длины выводят количество байт, занятых командой.
-
Рекомендации и дальнейшее чтение
- Статья предлагает дополнительные ресурсы для изучения дизассемблирования и декомпиляции.
Полный текст статьи: