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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

окна

push L CW_USEDEFAULT ;Высота

push L CW_USEDEFAULT ;Длина

push L CW_USEDEFAULT ;Y

push L CW_USEDEFAULT ;X

push L WS_OVERLAPPEDWINDOW ;Style

push offset szTitleName ;Title Style

push offset szClassName ;Class name

push L 0 ;extra style

call CreateWindowEx

;Сохраняем HWND

mov [newhwnd], eax

;Отображаем окно на экране

push L SW_SHOWNORMAL

push [newhwnd]

call ShowWindow

;Обновляем содержимое окна

push [newhwnd]

call UpdateWindow

;Очередь сообщений

msg_loop:

;Прочитаем следующее сообщение из очереди

push L 0

push L 0

push L 0

push offset msg

call GetMessage

;Если функция GetMessage вернула нулевое значение, то завершаем

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

cmp ax,0

je end_loop

;Преобразуем виртуальные коды клавиш в сообщения клавиатуры

push offset msg

call TranslateMessage

;Передаем это сообщение назад в Windows

push offset msg

call DispatchMessage

;Переходим к следующему сообщению

jmp msg_loop

;Выход из процесса

end_loop:

push [msg.msWPARAM]

call ExitProcess

;Обработка сообщений окна. Win32 требует сохранения регистров

;EBX, EDI, ESI. Запишем эти регистры после ”uses” в строке ”proc”.

;Это позволит Ассемблеру сохранить их

WndProc proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD, wparam:

DWORD, lparam:DWORD

LOCAL theDC:DWORD

;Проверим, какое сообщение получили, и перейдем к обработке

cmp [wmsg],WM_DESTROY

je wmdestroy

cmp [wmsg],WM_RBUTTONDOWN

je wmrbuttondown

cmp [wmsg],WM_SIZE

je wmsize

cmp [wmsg],WM_CREATE

je wmcreate

cmp [wmsg],WM_LBUTTONDOWN

je wmlbuttondown

cmp [wmsg],WM_PAINT

je wmpaint

cmp [wmsg],WM_GETMINMAXINFO

je wmgetminmaxinfo

;Данная программа не обрабатывает это сообщение.

;Передадим его Windows,

;чтобы оно было обработано по умолчанию

jmp defwndproc

;Сообщение WM_PAINT (перерисовать содержимое окна)

wmpaint:

;Подготовим окно для перерисовки

push offset lppaint

push [hwnd]

call BeginPaint

mov [theDC], eax

;Переведем в ASCII−формат значение mbx_count, которое

;показывает, сколько раз была нажата левая кнопка мыши

mov eax,[mbx_count]

mov edi, offset s_num

call HexWrite32

;Вывод строки в окно

push L MSG_L ;Длина строки

push offset szPaint ;Строка

push L 5 ;Y

push L 5 ;X

push [theDC] ;DC

call TextOut

;Обозначим завершение перерисовки окна

push offset lppaint

push [hwnd]

call EndPaint

;Выходим из обработки сообщения

mov eax, 0

jmp finish

;Сообщение WM_CREATE (создание окна)

wmcreate:

;Выходим из обработки сообщения

mov eax, 0

jmp finish

;Сообщение, не обрабатываемое данной программой, передаем Windows

defwndproc:

push [lparam]

push [wparam]

push [wmsg]

push [hwnd]

call DefWindowProc

;Выходим из обработки сообщения

jmp finish

;Сообщение WM_DESTROY (уничтожение окна)

wmdestroy:

;Закроем поток

push L 0

call PostQuitMessage

;Выходим из обработки сообщения

mov eax, 0

jmp finish

;Сообщение WM_LBUTTONDOWN (нажата левая кнопка мыши)

wmlbuttondown:

inc [mbx_count]

;Обновим содержимое окна

push L 0

push L 0

push [hwnd]

call InvalidateRect

;Выходим из обработки сообщения

mov eax, 0

jmp finish

;Сообщение WM_RBUTTONDOWN (нажата правая кнопка мыши)

wmrbuttondown:

push L 0

call MessageBeep

;Выходим из обработки сообщения

jmp finish

;Сообщение WM_SIZE (изменен размер окна)

wmsize:

;Выходим из обработки сообщения

mov eax, 0

jmp finish

;Сообщение WM_GETMINMAXINFO (попытка изменить размер

;или положение окна)

wmgetminmaxinfo:

;Заполним структуру MINMAXINFO

mov ebx, [lparam]

mov [(MINMAXINFO ptr ebx).mintrackposition_x],350

mov [(MINMAXINFO ptr ebx).mintrackposition_y],60

;Выходим из обработки сообщения

mov eax, 0

jmp finish

;Выходим из обработки сообщения

finish:

ret

WndProc endp

;Процедура перевода байта в ASCII−формат для печати. Значение,

;находящееся в регистре AL, будет записано в ASCII−формате

;по адресу ES:EDI

HexWrite8 proc

;Разделяем байт на полубайты и загружаем их в регистры AH и AL

mov ah,al

and al,0Fh

shr ah,4

;Добавляем 30h к каждому полубайту, чтобы регистры содержали коды

;соответствующих символов ASCII. Если число,

;записанное в полубайте, было больше 9,

;то значение в этом полубайте надо еще корректировать

or ax,3030h

;Меняем полубайты местами, чтобы регистр AH содержал младший

;полубайт, а регистр AL – старший

xchg al,ah

;Проверим, надо ли корректировать младший полубайт,

;если да – корректируем

cmp ah, 39h

ja @@4

;Проверим, надо ли корректировать старший полубайт,

;если да – корректируем

@@1:

cmp al,39h

ja @@3

;Сохраним значение по адресу ES:EDI

@@2:

stosw

ret

;Корректируем значение старшего полубайта

@@3:

sub al, 30h

add al, ”A”–10

jmp @@2

;Корректируем значение младшего полубайта

@@4:

sub ah, 30h

add ah, ”A”–10

jmp @@1

HexWrite8 endp

;Процедура перевода слова в ASCII−формат для печати.

;Значение, находящееся в регистре AX, будет записано

;в ASCII−формате по адресу ES:EDI

HexWrite16 proc

;Сохраним младший байт из стека

push ax

;Загрузим старший байт в регистр AL

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

Интервал:

Закладка:

Сделать

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

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


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

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

x