- •Глава 1 Все о нем и немного о.
- •1.1. Феномен компьютерных вирусов
- •1.2. Что такое компьютерный вирус
- •1.2.1. Объяснение для домохозяйки
- •1.2.2. Попытка дать "нормальное" определение
- •Обязательное (необходимое) свойство компьютерного вируса —
- •1.3. Кто и почему пишет вирусы?
- •1.4. История компьютерных вирусов — от древности до наших дней
- •1.4.1. Самое начало. Немного археологии
- •1.4.2. Начало пути
- •1.4.3. Полиморфизм — мутация вирусов
- •1.4.4. Автоматизация производства и конструкторы вирусов
- •1.4.5. За пределы dos
- •1.4.6. Эпидемия макровируса
- •1.4.7. Хронология событий
- •1.5. Перспективы: что будет завтра и послезавтра
- •Глава 2. Классификация компьютерных вирусов
- •2.1. Файловые вирусы
- •2.1.1. Overwriting-вирусы
- •2.1.2. Parasitic-вирусы
- •2.1.3. Companion-вирусы
- •2.1.4. Link-вирусы
- •2.1.5. Файловые черви
- •2.1.7. Алгоритм работы файлового вируса
- •2.1.8. Особые случаи
- •2. 2. Загрузочные вирусы
- •2.3 Макровирусы
- •2.3.1. Word-, Excel-, Office 97-вирусы
- •2.3.2. Алгоритм работы Word-макровирусов
- •2.3.3. Алгоритм работы Excel-макровирусов
- •2.3.4. AmiPro-вирусы
- •2.4. Сетевые вирусы
- •2.5. Прочие вредные программы
- •2.5.1. "Троянские кони" (логические бомбы)
- •2.5.2. Intended-вирусы
- •2.5.3. Конструкторы вирусов
- •2.5.4. Полиморфные генераторы
- •2.6. Резидентные вирусы
- •2.6.2. Загрузочные вирусы
- •2.6.3. Windows-вирусы
- •2.6.4. Макровирусы
- •2.7. "Стелс"-вирусы
- •2.7.1. Загрузочные вирусы
- •2.7.2. Файловые вирусы
- •2.7.3. Макровирусы
- •2.8. Полиморфик-вирусы
- •2.8.1. Полиморфные расшифровщики
- •2.8.2. Уровни полиморфизма
- •2.8.3. Изменение выполняемого кода
- •Глава 3 Методы обнаружения и удаления компьютерных вирусов
- •3.1 Профилактика заражения компьютера
- •3.2. Откуда берутся вирусы
- •3.2.1. Глобальные сети — электронная почта
- •3.2.2. Электронные конференции, файл-серверы ftp и bbs
- •3.2.3. Локальные сети
- •3.2.4. Пиратское программное обеспечение
- •3.2.5. Персональные компьютеры общего пользования
- •3.2.6. Ремонтные службы
- •3.3. Основные правила защиты
- •3.4.2. Типы антивирусов
- •3.4.3. Антивирусные программы, наиболее известные в России
- •Virusafe
- •3.4.4. Методика использования антивирусных программ
- •3.5. Обнаружение неизвестного вируса
- •3.6. Обнаружение загрузочного вируса
- •3.7. Обнаружение файлового вируса
- •3.8. Обнаружение макровируса
- •3.9. Обнаружение резидентного вируса
- •3.9.2. Windows-вирусы
- •3.10. Анализ алгоритма вируса
- •3.11. Восстановление пораженных объектов
- •3.11.1. Восстановление файлов-документов и таблиц
- •3.11.2. Восстановление загрузочных секторов
- •3.11.3. Восстановление файлов
- •3.11.4. Дезактивация оперативной памяти
- •Глава 4. Описание вирусов
- •4.1 Файловые вирусы
2.6.2. Загрузочные вирусы
Подавляющее большинство резидентных загрузочных вирусов для выделения системной памяти для своей резидентной копии использует один и тот же прием: они уменьшают объем DOS-памяти (слово по адресу 0040:0013) и копируют свой код в "отрезанный" блок памяти. Объем DOS-памяти обычно уменьшается на единицу (1 Кб) в случае коротких загрузочных вирусов, код которых занимает один сектор дискового пространства (512 байт). Вторая половина килобайта используется такими вирусами, как буфер чтения-записи при заражении дисков. Если же размер вируса больше 1 Кб, он использует нестандартные методы заражения, требующие большего объема буфера чтения-записи. Соответственно объем памяти уменьшается на несколько килобайтов (среди известных вирусов максимальное значение у вируса RDA.Fighter - 30 Кб).
В дальнейшем некоторые вирусы "ждут" загрузки DOS и восстанавливают первоначальное значение объема системной памяти. В результате они оказываются расположенными не за пределами DOS, а как отдельный блок DOS-памяти. Некоторые загрузочные вирусы вообще не используют и не изменяют значение объема системной памяти. Они копируют себя в какую-либо область памяти, не используемую вплоть до загрузки DOS, ждут загрузки DOS и затем инсталлируют свой код в системе всеми возможными в DOS способами.
Эти вирусы используют несколько способов перехвата момента загрузки DOS. Наиболее популярный способ — проверка значения INT 21h (прерывание DOS-функций). Если это значение изменилось, вирусы считают, что инсталляция DOS завершена. Проверка значения INT 21h проводится при вызовах INT 8, ICh (для этого вирусы помимо прерываний обращения к дискам перехватывают также прерывания таймера) или при вызовах INT 13h. Менее популярный способ — проверка данных, считываемых с диска (для этого требуется только перехват INT 13h). Если буфер чтения содержит заголовок ЕХЕ-файла, вирусы считают, что загрузка DOS завершена, поскольку в память для выполнения загружается ЕХЕ-файл.
Для того чтобы перехватить обращения к дискам, большинство загрузочных вирусов перехватывают INT 13h — основное прерывание для работы с дисками. Реже используется перехват INT 40h — прерывание для работы с гибкими дисками. Еще реже используются различные экзотические способы перехвата прерываний BIOS и DOS, возникающих при работе с дискетами.
В случае перехвата INT 13h/40h вирусы обрабатывают команды чтения-записи секторов (АН=2,3), проверяют диск на зараженность и записывают в его загрузочный сектор или в MBR винчестера свой код. Реже перехватываются другие команды — от команды Reset Disk (AH=0) вплоть до команд "длинного" чтения-записи (AH=OAh,OBh).
Большая часть загрузочных вирусов не проверяет системную память на наличие своей уже установленной TSR-копии: они либо используют "стелс"-приемы, при которых повторный запуск кода вируса невозможен, либо ориентируются на то, что код вируса загружается однократно в момент загрузки DOS, после этого коды загрузочных секторов дисков больше не выполняются ни при каких условиях. Часть вирусов проверяет наличие своей копии. Для этого используются либо специальные вызовы INT 13h с каким-нибудь нестандартным значением, либо помечается заведомо неиспользуемый байт (или слово) в таблице векторов прерываний или в области данных BIOS (0040:00??). Существуют и другие способы обнаружения своей TSR-копии.