Ассемблер и дизассемблирование

Пирогов В.Ю.

Рассмотрены вопросы исследования кода Windows-приложений. Подробно описаны формат исполняемых модулей и структура инструкций микропроцессора Intel. Дан полный обзор инструментария по исследованию исполняемого кода: отладчики, дизассемблеры, редакторы ресурсов, HEX-редакторы и др. Большое внимание уделено работе с популярными программами по дизассемблированию и отладке SoftICE и IDA Pro

Приведены примеры исследования исполняемого кода и описаны основные принципы подобного исследования: идентификация программных структур, поиск данных и др. Прилагаемый компакт-диск содержит тексты всех листингов, описанных в книге, а также учебные программы.

СПб.: БХВ-Петербург, 2006.

ISBN 5-94157-677-3, 5-94157-677-7

Количество страниц: 464.

Содержание книги «Ассемблер и дизассемблирование»:

  • 1 Введение
    • 2 Для кого эта книга
    • 3 Благодарности
  • 5 Глава 1. Введение в дизассемблирование
    • 5 1.1. Представление информации в памяти компьютера
      • 5 1.1.1. Заглянем в память
      • 7 1.1.2. Системы счисления
        • 7 Десятичная система счисления
        • 8 Двоичная система счисления
        • 10 Шестнадцатеричная система счисления
      • 11 1.1.3. Представление чисел в компьютере
        • 11 Беззнаковые целые числа
        • 13 Числа со знаком
        • 15 Вещественные числа
        • 17 Двоично-десятичные числа
    • 18 1.2. Обзор команд и регистров микропроцессора Intel Pentium
      • 18 1.2.1. Регистры микропроцессора Pentium
        • 18 Регистры общего назначения
        • 19 Регистр флагов
        • 20 Сегментные регистры
        • 20 Управляющие регистры
        • 22 Системные адресные регистры
        • 22 Регистры отладки
      • 23 1.2.2. Основной набор команд
      • 38 1.2.3. Команды математического сопроцессора
        • 38 Функционирование и структура
        • 41 Команды сопроцессора
      • 48 1.2.4. Расширение MMX
        • 48 Архитектура MMX
        • 49 Инструкции MMX
        • 52 Новые инструкции MMX
    • 54 1.3. Особенности программирования в операционной системе Windows
      • 54 1.3.1. Общие положения
      • 56 1.3.2. Консольные приложения
      • 66 1.3.3. Оконные приложения
      • 72 1.3.4. Приложения на основе диалоговых окон
    • 78 1.4. Формат команд микропроцессора Intel
      • 78 1.4.1. Общие соображения
      • 81 1.4.2. Код команды
      • 85 1.4.3. Байт MOD R/M
      • 89 1.4.4. Байт SIB
      • 91 1.4.5. Маленький пример ручного дизассемблирования
      • 92 1.4.6. О некоторых проблемах дизассемблирования
      • 95 1.4.7. О командах арифметического сопроцессора
    • 97 1.5. Описание структуры исполняемого модуля (PE-модуль)
      • 97 1.5.1. Общий подход
      • 103 1.5.2. Заголовок PE
      • 107 1.5.3. Секции
      • 111 1.5.4. Таблица импорта
      • 114 1.5.5. Таблица экспорта
      • 116 1.5.6. Ресурсы
        • 117 Первый уровень
        • 118 Второй уровень
        • 119 Третий уровень
        • 119 Четвертый уровень
      • 119 1.5.7. Об отладочной информации
        • 119 Таблица символов
        • 120 Отладочная информация
    • 121 1.6. Об отладке и дизассемблировании программ, написанных на языке ассемблера
      • 121 1.6.1. Примеры дизассемблирования
        • 121 Пример поиска импортируемой функции
        • 125 Некоторые сложности в распознавании исполняемого кода
        • 130 "Тайные переходы" и тайны переходов
        • 133 Использование отладочной информации
      • 134 1.6.2. О динамическом изменении исполняемого кода
        • 134 Исполнение кода в стеке
        • 140 Используем функцию WriteProcessMemory
        • 143 Используем функцию VirtualProtectEx
  • 147 Глава 2. Инструментарий исследователя машинного кода
    • 147 2.1. Краткий обзор инструментов
      • 147 2.1.1. Дизассемблеры
        • 147 Программа dumpbin.exe
        • 150 Знаменитый дизассемблер IDA Pro
        • 150 Дизассемблер W32Dasm
        • 151 Специализированные дизассемблеры
      • 152 2.1.2. Отладчики
        • 152 Turbo Debugger
        • 153 Debugging Tools for Windows
        • 154 Отладчик OllyDbg
        • 154 Мощный отладчик SoftICE
      • 155 2.1.3. HEX-редакторы
        • 155 WinHex
        • 155 Hacker Viewer
        • 158 Biew.exe
      • 159 2.1.4. Другие утилиты
        • 159 Исследователи ресурсов
        • 160 Мониторы
    • 161 2.2. Дизассемблер и отладчик W32Dasm
      • 161 2.2.1. Начало работы
        • 161 Интерфейс и настройки программы
      • 163 2.2.2. Работа с дизассемблируемым кодом
        • 163 Перемещение по дизассемблированному тексту
        • 164 Отображение данных
        • 165 Вывод импортированных и экспортированных функций
        • 165 Отображение ресурсов
        • 166 Операции с текстом
      • 166 2.2.3. Отладка программ
        • 166 Загрузка программ для отладки
        • 168 Работа с динамическими библиотеками
        • 168 Точки останова
        • 168 Модификация кода, данных и регистров
        • 170 Дополнительные возможности для работы с API
        • 170 Поиск нужного места в программе
    • 171 2.3. Отладчик OllyDbg
      • 171 2.3.1. Начало работы с отладчиком
        • 171 Окна отладчика
        • 173 Отладочное выполнение
      • 175 2.3.2. Точки останова
        • 175 Обычные точки останова
        • 175 Условные точки останова
        • 176 Условные точки останова с записью в журнал
        • 176 Точка останова на сообщения Windows
        • 178 Точка останова на функции импорта
        • 178 Точка останова на область памяти
        • 178 Точка останова в окне Memory
        • 178 Аппаратные точки останова
      • 179 2.3.3. Другие возможности
        • 179 Окно наблюдения
        • 179 Поиск информации
        • 180 Исправление исполняемого модуля
    • 180 2.4. Несколько примеров редактирования исполняемых модулей
      • 181 2.4.1. Пример 1. Удаление нежелательного сообщения
        • 181 Поиск в OllyDbg
        • 183 Поиск в W32Dasm
        • 184 Поиск в IDA Pro
      • 184 2.4.2. Пример 2. Снятие ограничений на использование программы
        • 186 Процедура задержки
        • 187 Снятие ограничения на количество запусков программы
      • 189 2.4.3. Пример 3. Разбираемся с «Evaluation Copy»
        • 189 Общие соображения
        • 190 Поиски в отладчике
      • 191 2.4.4. Пример 4. Снятие защиты
        • 191 Стадия 1. Попытка зарегистрироваться
        • 193 Стадия 2. Избавляемся от надоедливого окна
        • 195 Стадия 3. Доводим регистрацию до логического конца
        • 196 Стадия 4. Неожиданная развязка
  • 199 Глава 3. Основные парадигмы анализа исполняемого кода
    • 200 3.1. Идентификация данных
      • 201 3.1.1. Глобальные переменные
        • 201 Влияния оптимизации
        • 205 Указатели на глобальные переменные
        • 207 Глобальные переменные и константы
        • 209 Размер, расположение и тип переменных
        • 215 Сложные типы данных
      • 229 3.1.2. Локальные переменные
        • 229 Переменные, определенные в стеке
        • 236 Временные переменные
        • 242 Регистровые переменные
    • 244 3.2. Идентификация программных структур
      • 244 3.2.1. Процедуры и функции
        • 244 Передача параметров
        • 250 Структуры стека
        • 258 Идентификация процедур и функций (обобщение)
        • 265 Переполнение буфера
      • 274 3.2.2. Условные конструкции и операторы выбора
        • 275 Простые конструкции
        • 282 Вложенные конструкции и логические связки
        • 286 Условные конструкции без переходов
        • 287 Операторы выбора
      • 290 3.2.3. Циклы
        • 291 Простые циклы
        • 295 Об оптимизации циклов
        • 300 Вложенные циклы и циклы со сложными условиями выхода
      • 304 3.2.4. Объекты
        • 305 Идентификация объекта
        • 311 Виртуальные функции
        • 320 Конструктор и деструктор
      • 325 3.2.5. Еще об исследовании исполняемого кода
        • 325 О математических вычислениях
        • 327 Другие конструкции
  • 335 Глава 4. Отладчик SoftICE
    • 336 4.1. Основы работы с SoftICE
      • 336 4.1.1. Запуск и интерфейс
        • 336 Главное окно SoftICE
        • 339 Режимы работы отладчика
      • 339 4.1.2. Загрузчик (Loader)
        • 339 Загрузка исполняемого модуля
        • 340 Параметры загрузки
      • 342 4.1.3. Некоторые приемы работы с SoftICE
        • 342 Начало работы. Процессы
        • 343 Точки останова
        • 347 Поиск процедуры окна
        • 347 Если приложение содержит отладочную информацию
    • 348 4.2. Краткий справочник по SoftICE
      • 348 4.2.1. Горячие клавиши
        • 348 Управление экраном
        • 349 Перемещение внутри главного окна
        • 349 Перемещение содержимого окон
        • 350 Управление командным окном
        • 350 Функциональные клавиши
      • 351 4.2.2. Команды SoftICE
        • 351 Макрокоманды отладчика SoftICE
        • 353 Команды управления окнами SoftICE
        • 355 Получение и изменения информации в окнах
        • 359 Команды управления точками останова
        • 363 Команды трассировки
        • 364 Основные информационные команды
        • 369 Другие команды
        • 370 Операторы
        • 371 Встроенные функции SoftICE
  • 375 Глава 5. Дизассемблер IDA Pro
    • 376 5.1. Введение в IDA Pro
      • 376 5.1.1. Начало работы
        • 376 Общие сведения о виртуальной памяти
        • 377 Интерфейс программы
        • 390 Ключи запуска программы
      • 391 5.1.2. Простые примеры исследования кода
        • 391 О возможностях IDA Pro
        • 399 Отладка в среде IDA Pro
    • 401 5.2. Встроенный язык IDA Pro
      • 402 5.2.1. О встроенном языке IDA Pro
        • 402 Общие сведения
        • 403 Структура программы и синтаксис языка IDC
      • 407 5.2.2. Встроенные функции и примеры программирования на языке IDC
        • 407 Доступ к виртуальной памяти
        • 411 Структура строки листинга
        • 419 Работа с функциями
        • 421 Элементы интерфейса с пользователем
        • 422 Другие возможности программного анализа листинга в IDA Pro
  • 425 Приложения
  • 427 Приложение 1
  • 440 Приложение 2. Описание компакт-диска
  • 441 Литература
  • 442 Предметный указатель

Инструкция как скачать книгу Пирогов В.Ю.: Ассемблер и дизассемблирование в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Ассемблер и дизассемблирование
Рейтинг книги:
0 голосов
9

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: