Секреты ассемблирования дизассемблерных листингов


Содержание


Секреты ассемблирования дизассемблерных листингов
Введение
Первое боевое крещение
Листинг 1 исходный текст программы demo_comsole.c
Рисунок1 успешно дизассемблированный файл
Рисунок2 ассемблеры, поддерживаемые IDA Pro 4.7 (слева), и IDA Pro 5.0 (справа)
Рисунок3 результат непосредственной трансляции дизассемблерного листинга
Рисунок4 критическая ошибка при попытке ассемблирования листинга, сгенерированного IDA Pro
Листинг2 транслятор не может найти имена библиотечных функций в листинге
Листинг3 сколлапсированные функции остаются сколлапсированными и в ассемблерном листинге!
Листинг4 реакция транслятора на отсутствие объявления структур
Листинг5 сколлапсированные структуры в ассемблерном файле
Листинг6 транслятор по прежнему не может определить развернутые структуры
Листинг7 камень преткновения всех структур
Рисунок5 трансляция ассемблерного листинга в режиме совместимости с MASM 5.1
Листинг8 здесь возникает ошибка типа "отсутствующий оператор"
Рисунок6 автоматическая замена всех "large fs" на "fs" в FAR'e
Листинг9 перечень ошибок, выявленных ассемблером при очередном сеансе трансляции
Листинг10 очередная обитель зла на подступах к успешной трансляции
Листинг11 "потерянные метки" легко обнаруживаются контекстным поиском
Листинг12 IDA Pro поместила обращения
Листинг13 исправленный вариант, позволяющий транслятору обнаружить "недостающие метки"
Листинг14 список ошибок, обнаруженных
Листинг15 оригинальный код, сгенерированный IDA Pro, который не хочет транслироваться
Листинг16 исправленный вариант
Листинг17 IDA Pro сгенерировала неработоспособный листинг для парной функции strcpy/strcat
Листинг18 дважды определенный символ Locale
Заключение



- Начало -