Ассемблер для Windows — Рассмотрены необходимые сведения для программирования Windows-приложений на ассемблерах MASM и TASM: разработка оконных и консольных приложений; создание динамических библиотек; многозадачное программирование; программирование в локальной сети, в том числе и с использованием сокетов; создание драйверов, работающих в режиме ядра; простые методы исследования программ и др. В новом издании материал существенно переработан в соответствии с новыми возможностями ОС. Значительно шире рассмотрены вопросы управления файлами и API-программирования в Windows. К книге прилагается компакт-диск со всеми примерами, которые приводятся или упоминаются в тексте.
Название: Ассемблер для Windows Автор: Пирогов В. Ю. Издательство: БХВ-Петербург Год: 2011 Страниц: 886 Формат: PDF + ФАЙЛЫ Размер: 28,17 МБ Качество: Отличное
Содержание:
Введение Что нового? Соглашения О Windows Vista Структура изложения Введение ко второму изданию книги "Ассемблер для Windows" Введение к третьему изданию книги "Ассемблер для Windows" ЧАСТЬ I. ОСНОВЫ ПРОГРАММИРОВАНИЯ В WINDOWS Глава 1.1. Средства программирования в Windows Первая программа на языке ассемблера и ее трансляция Объектные модули Директива INVOKE Данные в объектном модуле Упрощенный режим сегментации О пакете MASM32 Обзор пакета MASM32 Трансляторы Редактор QEDITOR Дизассемблеры Глава 1.2. Основы программирования в операционной системе Windows Вызов функций API Структура программы Регистрация класса окон Создание окна Цикл обработки очереди сообщений Процедура главного окна Примеры простых программ для Windows Еще о цикле обработки сообщений Передача параметров через стек Глава 1.3. Примеры простых программ на ассемблере Принципы построения оконных приложений Окно с кнопкой Окно с полем редактирования Окно со списком Дочерние и собственные окна Глава 1.4. Ассемблер MASM Командная строка ML.EXE Командная строка LINK.EXE Включение в исполняемый файл отладочной информации Получение консольных и GUI-приложений Автоматическая компоновка "Самотранслирующаяся" программа Глава 1.5. О кодировании текстовой информации в операционной системе Windows О кодировании текстовой информации OEM и ANSI Кодировка Unicode ЧАСТЬ II. ПРОСТЫЕ ПРОГРАММЫ, КОНСОЛЬНЫЕ ПРИЛОЖЕНИЯ, ОБРАБОТКА ФАЙЛОВ Глава 2.1. Вывод графики и текста в окно. Библиотека GDI Вывод текста в окне Выбор шрифта Графические образы Глава 2.2. Графика: GDI+, DirectX, OpenGL Работаем с функциями GDI+ Библиотека DirectX Программируем на OpenGL Глава 2.3. Консольные приложения Создание консоли Обработка событий от мыши и клавиатуры Событие KEY_EVENT Событие MOUSE_EVENT Событие WINDOW_BUFFER_SIZE_EVENT Таймер в консольном приложении Глава 2.4. Понятие ресурса. Редакторы и трансляторы ресурсов Пиктограммы Курсоры Битовые изображения Строки Диалоговые окна Меню Акселераторы Немодальные диалоговые окна Глава 2.5. Примеры программ, использующих ресурсы Динамическое меню Горячие клавиши Управление списками Программирование в стиле Windows XP и Windows Vista Глава 2.6. Управление файлами: начало Характеристики файлов Атрибут файла Временные характеристики Длина файла Имя файла Файловая система FAT32 Файловая система NTFS Каталоги в NTFS Сжатие файлов в NTFS Точки повторной обработки Поиск файлов Приемы работы с двоичными файлами Пример получения временных характеристик файла Глава 2.7. Директивы и макросредства ассемблера Метки Строки Структуры Объединения Удобный прием работы со структурами Условное ассемблирование Вызов процедур Макроповторения Макроопределения Некоторые другие директивы транслятора ассемблера Конструкции времени исполнения программы Пример программы одинаково транслируемой как в MASM, так и в TASM Глава 2.8. Еще об управлении файлами (CreateFile и другие функции) Полное описание функции CreateFile для работы с файлами Другие возможности функции CreateFile Почтовый ящик или mailslot Каналы передачи информации (pipes) Дисковые устройства Обзор некоторых других функций API, используемых для управления файлами Асинхронный ввод/вывод Запись в файл дополнительной информации ЧАСТЬ III. СЛОЖНЫЕ ПРИМЕРЫ ПРОГРАММИРОВАНИЯ В WINDOWS Глава 3.1. Таймер в оконных приложениях Общие сведения Простейший пример использования таймера Взаимодействие таймеров Всплывающие подсказки Глава 3.2. Многозадачное программирование Процессы и потоки Потоки Взаимодействие потоков Семафоры События Критические секции Взаимоисключения Глава 3.3. Создание динамических библиотек Общие понятия Создание динамических библиотек Неявное связывание Использование общего адресного пространства Совместное использование памяти разными процессами Глава 3.4. Сетевое программирование Сетевые устройства Поиск сетевых устройств и подключение к ним О сетевых протоколах TCP/IP О модели OSI О семействе TCP/IP Об IP-адресации Маскирование адресов Физические адреса и адреса IP О службе DNS Автоматическое назначение IP-адресов Маршрутизация и ее принципы Управление сокетами Пример простейшего клиента и сервера Глава 3.5. Разрешение некоторых проблем программирования в Windows Глава 3.6. Некоторые вопросы системного программирования в Windows Страничная и сегментная адресация Адресное пространство процесса Управление памятью Динамическая память Виртуальная память Фильтры (HOOKS) Глава 3.7. Совместное использование ассемблера с языками высокого уровня Согласование вызовов (исторический экскурс) Согласование имен Согласование параметров Простой пример использования ассемблера с языками высокого уровня Передача параметров через регистры Вызовы API и ресурсы в ассемблерных модулях Развернутый пример использования языков ассемблера и C Встроенный ассемблер Пример использования динамической библиотеки Использование языка C из программ, написанных на языке ассемблера Глава 3.8. Программирование сервисов Основные понятия и функции управления Структура сервисов Пример сервиса ЧАСТЬ IV. ОТЛАДКА, АНАЛИЗ КОДА ПРОГРАММ, ДРАЙВЕРЫ Глава 4.1. Обзор инструментов для отладки и дизассемблирования Утилиты фирмы Microsoft EDITBIN.EXE DUMPBIN.EXE Дизассемблер W32Dasm Отладчик OllyDbg Другие инструменты DUMPPE.EXE Hiew.exe DEWIN.EXE IDA Pro Глава 4.2. Отладчик OllyDbg Начало работы с отладчиком Окна отладчика Отладочное выполнение Точки останова Обычные точки останова Условные точки останова Условные точки останова с записью в журнал Точка останова на сообщения Windows Точка останова на функции импорта Точка останова на область памяти Точка останова в окне Memory Аппаратные точки останова Другие возможности Окно наблюдения Поиск информации Исправление исполняемого модуля Глава 4.3. Описание работы с дизассемблером W32Dasm и отладчиком SoftICE Отладчик W32Dasm Начало работы Передвижение по дизассемблированному тексту Отображение данных Вывод импортированных и экспортированных функций Отображение ресурсов Операции с текстом Загрузка программ для отладки Работа с динамическими библиотеками Точки останова Модификация кода, данных и регистров Поиск нужного места в программе Отладчик SoftICE Основы работы с SoftICE Запуск и интерфейс Краткий справочник по SoftICE Глава 4.4. Основы анализа кода программ Переменные и константы Управляющие структуры языка С Условные конструкции Вложенные условные конструкции Оператор switch или оператор выбора Циклы Локальные переменные Функции и процедуры Оптимизация кода Объектное программирование Глава 4.5. Исправление исполняемых модулей Простой пример исправления исполняемого модуля Пример снятия защиты Стадия 1. Попытка зарегистрироваться Стадия 2. Избавляемся от надоедливого окна Стадия 3. Доводим регистрацию до логического конца Стадия 4. Неожиданная развязка Глава 4.6. Структура и написание драйверов О ядре и структуре памяти Управление драйверами Пример простейшего драйвера, работающего в режиме ядра Драйверы режима ядра и устройства ПРИЛОЖЕНИЯ Приложение 1. Справочник API-функций и сообщений Windows Приложение . Справочник по командам и архитектуре микропроцессора Pentium Регистры микропроцессора Pentium Регистры общего назначения Регистр флагов Сегментные регистры Управляющие регистры Системные адресные регистры Регистры отладки Команды процессора Команды арифметического сопроцессора Расширение MMX О новых инструкциях MMX Приложение 3. Защищенный режим микропроцессора Pentium Об уровнях привилегий Селекторы Дескриптор кода и данных Другие дескрипторы Сегмент TSS О защите и уровнях привилегий Привилегированные команды Переключение задач Страничное управление памятью Приложение 4. Структура исполняемых модулей Общая структура PE-модуля Заголовок PE-модуля Таблица секций Секция экспорта (.edata) Секция импорта (.idata) Локальная область данных потоков Секция ресурсов (.rdata) Таблица настроек адресов Отладочная информация (.debug$S, .debug$T) Приложение 5. Файл kern.inc, используемый в главе 4.6 Приложение Пример консольного приложения с полной обработкой событий Приложение 7. Описание компакт-диска Список литературы Предметный указатель