Как написать компьютерный вирус: практикум программирования на ассемблере

И. М. Коваль

Предисловие

Глава 1. Разработка нерезидентной вирусной
программы
1.1. Загрузка и выполнение COM-программы
1.2. Как вирус может заразить COM-файл
1.3. Работа вируса в зараженной программе
1.4. Как начинается распространение вируса
1.5. Начало работы
1.6. Вирус получает управление
1.7. Восстанавливаем зараженную программу
1.8. Запоминаем содержимое DTA
1.9. Ищем подходящий файл
1.10. Читаем исходные три байта
1.11. Выполняем необходимые расчеты
1.12. Проверяем файл на зараженность
1.13. Заражаем COM-программу
1.14. Восстанавливаем DTA
1.15. Передаем управление зараженной
программе
1.16. Область данных вирусной программы
1.17. Завершаем запускающую программу
1.18. Текст нерезидентного COM-вируса
1.19. Комментарии
1.20. Испытание вируса

Глава 2. Разработка резидентной вирусной
программы
2.1. Понятие резидентного (TSR) вируса
2.2. Несколько слов о резидентных
программах
2.3. Алгоритм работы резидентного
COM-вируса
2.4. Заголовок вируса
2.5. Вирус начинает работу
2.6. Сохраняем регистры процессора
2.7. Создаем секцию инициализации
2.8. Запрашиваем блок памяти
2.9. Делаем вирус "незаметным"
2.10. Получаем вектора прерываний
2.11. Копируем вирусный код в память
2.12. Устанавливаем вектора прерываний на
вирусные обработчики
2.13. Пишем резидентную часть
2.14. Заражаем COM-файл
2.15. Восстанавливаем регистры
2.16. Пишем обработчики прерываний
2.17. Обработчик Int 13h
2.18. Обработчик Int 21h
2.19. Обработчик Int 24h
2.20. Обработчик Int 2Fh
2.21. Обработчик Int 28h
2.22. Область данных вируса
2.23. Процедура идентификации COMMAND.COM
2.24. Завершаем программу
2.25. Текст резидентного COM-вируса
2.26. Комментарии
2.27. Испытание вируса

Глава 3. Разработка нерезидентного EXE-вируса
3.1. Формат EXE-файла на диске
3.2. Загрузка и выполнение EXE-программы
3.3. Как вирус может заразить EXE-файл
3.4. Работа вируса в зараженной программе
3.5. Начало работы
3.6. Вирус получает управление
3.7. Ищем подходящий файл
3.8. Читаем заголовок файла
3.9. Производим необходимые вычисления
3.10. Заражаем EXE-программу
3.11. Восстанавливаем DTA
3.12. Восстанавливаем точку входа
3.13. Область данных вируса
3.14. Используемые процедуры
3.15. Работа завершена
3.16. Полный текст нерезидентного
EXE-вируса
3.17. Несколько слов об испытании вируса

Глава 4. Разработка резидентного EXE-вируса
4.1. Алгоритм работы резидентного
EXE-вируса
4.2. Защита от программ-антивирусов
4.3. Как реализовать защиту от
эвристического анализа
4.4. Реализуем предложенный алгоритм
4.5. Пишем промежуточный обработчик
4.6. Защита от обнаружения вируса в файле
4.7. Несколько слов о вредных действиях
вирусной программы
4.8. Полный текст резидентного EXE-вируса

Глава 5. Разработка загрузочной вирусной
программы
5.1. Краткие сведения о начальной загрузке
персонального компьютера
5.2. Понятие о загрузочных вирусах
5.3. Алгоритм работы загрузочного вируса
5.4. Как начинается распространение вируса
5.5. Начало работы
5.6. Вирус получает управление
5.7. Защита от антивирусных программ
5.8. Перехватываем Int 13h
5.9. Читаем исходную BOOT-запись
5.10. Заражаем MBR винчестера
5.11. Пишем обработчик прерывания Int 13h
5.12. Используемые процедуры
5.13. Область данных вируса
5.14. Пишем секцию инсталляции
5.15. Текст загрузочного вируса
5.16. Комментарии
5.17. Испытание вируса

Глава 6. Еще один BOOT-вирус
6.1. Краткие итоги предыдущей главы
6.2. Объясняем полученные результаты
6.3. Разрабатываем новый алгоритм
активизации
6.4. О перехвате Int 21h
6.5. О применении вектора Int 16h
6.6. Общий алгоритм работы вируса
6.7. Полный текст созданного вируса
6.8. Испытание вируса
6.9. Вместо комментария

Заключение

Приложение 1. Краткий справочник по функциям
MS DOS и BIOS
Приложение 2. Формат загрузочной записи для
различных версий MS DOS
Приложение 3. Коды ошибок при выполнении
функций MS DOS и BIOS