Windows для профессионалов
Создание DLL для использования с другими средствами разработки (отличными от Visual C++)Создание ЕХЕ-модуля
Что такое импорт
Выполнение ЕХЕ-модуля
ГЛАВA 20 DLL: более сложные методы программирования
Явная загрузка DLL и связывание идентификаторов
Явная загрузка DLL
Явная выгрузка DLL
Явное подключение экспортируемого идентификатора
Функция входа/выхода
Уведомление DLL_PROCESS_ATTACH
Уведомление DLL_PROCESS_DETACH
Уведомление DLL_THREAD_ATTACH
Уведомление DLL_THREAD_DETACH
Как система упорядочивает вызовы DIIMain
Функция DllMain и библиотека С/С++
Отложенная загрузка DLL
Программа-пример DelayLoadApp
Переадресация вызовов функций
Известные DLL
Перенаправление DLL
Модификация базовых адресов модулей
Связывание модулей
Глава 21 - Локальная память потока
Динамическая локальная память потока
Использование динамической TLS
Статическая локальная память потока
ГЛАВА 22 Внедрение DLL и перехват API-вызовов
Пример внедрения DLL
Внедрение DLL c использованием реестра
Внедрение DLL с помощью ловушек
Утилита для сохранения позиций элементов на рабочем столе
Внедрение DLL с помощью удаленных потоков
Программа-пример lnjLib
Библиотека lmgWalk.dll
Внедрение троянской DLL
Внедрение DLL как отладчика
Внедрение кода в среде Windows 98 через проецируемый в память файл
Внедрение кода через функцию CreateProcess
Перехват API-вызовов: пример
Перехват API-вызовов подменой кода
Перехват API-вызовов с использованием раздела импорта
Программа-пример LastMsgBoxlnfo
Глава 23 - Обработчики завершения
Примеры использования обработчиков завершения
Funcenstein1
Funcenstein2
Проверьте себя: FuncaDoodleDoo
Funcarama1
Funcarama4: последний рубеж
И еще о блоке finally
Программа-пример SEHTerm
Глава 24 - Фильтры и обработчики исключений
Примеры использования фильтров и обработчиков исключений
Funcmeister1
EXCEPTION_EXECUTE_HANDLER
Некоторые полезные примеры
Глобальная раскрутка
Остановка глобальной раскрутки
EXCEPTION_CONTINUE_EXECUTION
Будьте осторожны с EXCEPTION_CONTINUE_EXECUTION
EXCEPTION_CONTINUE_SEARCH
Функция GetExceptionCode
Функция GetExceptionlnformation
Программные исключения
Глава 25 - Необработанные исключения и исключения С++
Отладка по запросу
Отключение вывода сообщений об исключении
Принудительное завершение процесса
Создание оболочки вокруг функции потока
Создание оболочки вокруг всех функций потоков
Автоматический вызов отладчика
Явный вызов функции UnhandledExceptionFilter
Функция UnhandledExceptionFilter изнутри
Исключения и отладчик
Программа-пример Spreadsheet
Исключения С++ и структурные исключения
Исключения С++ и структурные исключения - 2
Перехват структурных исключений в С++
Глава 26 - Оконные сообщения
Очередь сообщений потока
Посылка асинхронных сообщений в очередь потока
Посылка синхронных сообщений окну
Пробуждение потока
Флаги состояния очереди
Содержание раздела