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


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


Секреты ассемблирования дизассемблерных листингов
Введение
Первое боевое крещение
Листинг 1 исходный текст программы demo_comsole.c
успешно дизассемблированный файл
ассемблеры, поддерживаемые IDA Pro 4.7 (слева), и IDA Pro 5.0 (справа)
результат непосредственной трансляции дизассемблерного листинга
критическая ошибка при попытке ассемблирования листинга, сгенерированного IDA Pro
Листинг2 транслятор не может найти имена библиотечных функций в листинге
Листинг3 сколлапсированные функции остаются сколлапсированными и в ассемблерном листинге!



Листинг4 реакция транслятора на отсутствие объявления структур
Листинг5 сколлапсированные структуры в ассемблерном файле
Листинг6 транслятор по прежнему не может определить развернутые структуры
Листинг7 камень преткновения всех структур
трансляция ассемблерного листинга в режиме совместимости с MASM 5.1
Листинг8 здесь возникает ошибка типа "отсутствующий оператор"
автоматическая замена всех "large fs" на "fs" в FAR'e
Листинг9 перечень ошибок, выявленных ассемблером при очередном сеансе трансляции
Листинг10 очередная обитель зла на подступах к успешной трансляции
Листинг11 "потерянные метки" легко обнаруживаются контекстным поиском

Листинг12 IDA Pro поместила обращения
Листинг13 исправленный вариант, позволяющий транслятору обнаружить "недостающие метки"
Листинг14 список ошибок, обнаруженных
Листинг15 оригинальный код, сгенерированный IDA Pro, который не хочет транслироваться
Листинг16 исправленный вариант
Листинг17 IDA Pro сгенерировала неработоспособный листинг для парной функции strcpy/strcat
Листинг18 дважды определенный символ Locale
Заключение
Содержание раздела