Путеводитель по написанию вирусов под Win32
Дисклеймер переводчика
Дисклеймер автора
Несколько вводных слов
Содержание
Что потребуется для написания вирусов
Базовая информация
Изменения между 16-ти и 32-х битным программированием
"Hello, World" под Win32
Кольца
Важные сведения
Как компилировать программы
Заголовок PE
Введение
IMAGE_FILE_HEADER
IMAGE_OPTIONAL_HEADER
IMAGE_SECTION_HEADER
Необходимые изменения
+ DOS-информация +
+ Заголоки PE-секции +
+ DOS INFORMATION +
+ Заголовки PE-секций +
Ring-3, программирование на уровне пользователя
Простой способ получить адрес базы KERNEL32
Получить эти сумасшедшие функции API
Пример вируса
- Как откpыть файл для чтения и записи?
- Как создавать мэппинг откpытого файла?
- Как закpыть адpес мэппинга?
Ring-0, программирование на уровне бога
Получение доступа к Ring-0
Пpогpаммиpование виpусов под Ring-0
Пpовеpяем, какая OS запущена
Пеpеход в Ring-0 и выполнение пpеpывания
Обpаботчик файловой системы: настоящее веселье!!!
Подготовка к заражению
Само заражение
Код против VxD-мониторов
Заключительные слова
Перпроцессная резидентность
Обработка таблицы импортов
Получение базы образа во время выполнения
[ Мой перехватчик API-функций ]
Универсальный перехватчик
Заключение
Оптимизация под Win32
Проверка равен ли регистр нулю
Проверка, равен ли регистр -1
Сделать регистр равным -1
Очищаем 32-х битный регистр и помещаем что-нибудь в LSW
Вызов адреса, сохраненного в переменной
Веселье с push'ами
Получить конец ASCIIz-строки
Работа с умножением
UNICODE в ASCIIz
Вычисление VirtualSize
Установка кадров стека
Наложение
Перемещение 8-битного числа в 32-х битный регистр
Очищение переменных в памяти
Советы и приемы
В заключение
Антиотладка под Win32
Win98/NT: обнаружение отладчиков уровня приложения (IsDebuggerPresent)
Win32: другой путь узнать, что мы находимся в контексте отладчика
Win32: Остановка отладчиков уровня приложения с помощью SEH
Win9X: Detect SoftICE (I)
Win9X: обнаружение SoftICE (II)
Win32: обнаружение SoftICE (III)
Win9x: Убить хардверные брикпоинты отладчика
Win32-полиморфизм
Уровни полиморфизма
Как я могу сделать полиморф?
Очень важная вещь: ГСЧ
Основные концепции полиморфного движка
Генерация "настоящего" кода
Генерация мусора
Генерация инструкций
Рекурсивность
Продвинутые Win32-техники
Structured Exception Handler
Мультитредность
CRC32 (IT/ET)
Антиэмуляторы
Перезапись секции .reloc
Приложение 1: Полезная нагрузка
Приложение 2: Об авторе
Напоследок
"Путеводитель по написанию вирусов под Win32"
Содержание раздела