Windows для профессионалов


Содержание


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



Начало