Игорь Гульев - Создаем вирус и антивирус

Здесь есть возможность читать онлайн «Игорь Гульев - Создаем вирус и антивирус» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Прочая околокомпьтерная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Создаем вирус и антивирус: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Создаем вирус и антивирус»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Virus Warning!
С этим сообщением, хоть раз в жизни, сталкивался любой пользователь компьютера. Вирмейкеры с упорством маньяков плодят все новые и новые разновидности вирусов. Бытует мнение, что избавиться от них можно лишь с помощью сложных и дорогостоящих новейших антивирусных программ. Это не совсем верно – знание принципов действия и способов внедрения вирусов поможет вовремя их обнаружить и локализовать, даже если под рукой не окажется подходящей антивирусной «вакцины».
В этой книге вы найдете обширный материал, посвященный проблеме защиты информации, рассмотренной с обеих сторон баррикад (как от лица вирмейкера, так и создателя антивирусов).

Создаем вирус и антивирус — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Создаем вирус и антивирус», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

for(i=0;i

if (MaskEvents[i][0]==0) {

for(j=2;j

if(Events[MaskEvents[i][j]]==0) goto nextMask;

}

else

for(e=0,j=2;j

if(Events[MaskEvents[i][j]]==0 || Events[MaskEvents[i][j]]

goto nextMask;

else e=Events[MaskEvents[i][j]];

}

Actions[i]=1;

nextMask:;

}

где:

CountMaskEvents – число масок цепочек событий;

MaskEvents – двумерный массив цепочек связных и несвязных событий;

Actions – массив действия.

Затем выполняется второй преобразователь, который выбирает данные из массива действия и цепочек эвристических масок и вычисляет эвристическое число по следующему алгоритму:

for(i=0;i

for(j=1;j

if(Actions[MaskHeurist[i][j]]==0) goto nextMask1;

NumberHeurist=i+1;

break;

nextMask1:

}

где:

CountMaskHeurist – число эвристических масок;

MaskHeurist – двумерный массив с эвристическими масками;

NumberHeurist – эвристическое число.

Блокировщик вируса

Рассмотрим пример. В дисплейном классе ВУЗа эпидемия, часть машин заражена неизвестным вирусом. До конца сессии – несколько дней, выключение машин из учебного процесса смерти подобно (в первую очередь для обслуживающих класс сотрудников). Ситуация усугубляется тем, что студенты постоянно переносят программы на дискетах с одной машины на другую. Как ограничить распространение эпидемии, пока вирус не уничтожен?

Выход – написать антивирус-блокировщик. Практически все резидентные вирусы определяют факт своего наличия в памяти машины, вызывая какое-либо программное прерывание с «хитрыми» параметрами. Если написать простую резидентную программу, которая будет имитировать наличие вируса в памяти компьютера, правильно «отзываясь на пароль», то вирус, скорее всего, сочтет эту машину уже зараженной. Даже если некоторые файлы на машине содержат в себе код вируса, в случае использования блокировщика заражения всех остальных файлов не произойдет.

Разумеется, надо попытаться запустить блокировщик раньше всех остальных программ, например, в файле config.sys:

install c:\util\stopsvc.com

Но если вирус успел заразить command.com или стартует из загрузочного сектора, то антивирус-блокировщик не поможет.

Листинг программы, блокирующей распространение вируса SVC-1740:

;; Резидентный блокировщик вируса SVC−1740

;; (c) К. Климентьев, Самара 1997

cseg segment

assume cs:cseg, ds:cseg, ss:cseg

org 100h

;Переходим к инициализации программы

Start:

jmp Install

;Обработчик прерывания INT 21h

Int21:

;Проверим номер функции, если 83h –

;то это запрос присутствия вируса

cmp ah, 83h

jnz Skip21

;Ответим, что вирус присутствует

mov dx, 1990h

;Запускаем оригинальный обработчик прерывания

Skip21:

db 0EAh ;Код команды JMP

Ofs21 dw ?

Seg21 dw ?

;Инициализируем программу

Install:

;Проверим, не инсталлирована ли уже эта программа. Если

;инсталлирована, выведем сообщение об этом и выйдем из программы.

;Вторую копию программы инсталлировать не имеет смысла

mov ah,83h

int 21h

cmp dx, 1990h

jz Already

;Считаем оригинальный вектор прерывания INT 21h

mov ax,3521h

int 21h

mov Ofs21, bx

mov Seg21, es

;Установим наш вектор прерывания INT 21h

mov ax, 2521h

mov dx,offset Int21

int 21h

;Выведем сообщение об успешной инсталляции программы в памяти

mov ah,9

mov dx, offset OkMes

int 21h

;Выйдем из программы, оставив обработчик резидентным

mov dx, offset Install

int 27h

;Выведем сообщение о том, что вирус

;или наша программа уже в памяти

Already:

mov ah,9

mov dx, offset BadMes

int 21h

ret

;Сообщения программы

OkMes db ”Yeah! STOPSVC installed now!”,13,10

db ”(c) KostyaSoft, Samara 1997$”

BadMes db 7,”Perhaps, virus is in memory already. Sorry.$”

cseg ends

Пример антивируса

Итак, нужно написать некую программу, которая будет сканировать каталоги указанного диска, искать зараженные файлы и исцелять их.

Важный момент – поиск и лечение должны производиться после загрузки с «чистой» дискеты. Это правило должно выполняться при использовании любого антивируса. Но если коммерческие программы, написанные профессиональными вирусологами, каким-то образом пытаются противодействовать «заразе», пресекая действия агрессивных резидентов, разыскивая и обращаясь к оригинальным обработчикам прерываний или проверяя свой код на целостность, то представленная программа из-за своей простоты этого делать не умеет.

В качестве языка программирования выбран С. Приоритетным признано использование таких библиотечных процедур, форматы которых идентичны во многих системах программирования. Поэтому, например, использовалась процедура _dos_findfirst(), а не findfirst(). Программа была написана и отлаживалась в системе программирования JPI TopSpeed C v3.01, а также была проверена на Borland C++ v3.1. Кроме того, контролировалось наличие, идентичность по функциям и форматам вызова использованных библиотечных функций в системах программирования Microsoft C++ v6.0 и Watcom C++ v10.0. Но если что-то и не совпадет, откорректировать программу любому программисту не составит труда.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Создаем вирус и антивирус»

Представляем Вашему вниманию похожие книги на «Создаем вирус и антивирус» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Создаем вирус и антивирус»

Обсуждение, отзывы о книге «Создаем вирус и антивирус» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x