Jak cię złapią, to znaczy, że oszukiwałeś. Jak nie, to znaczy, że posłużyłeś się odpowiednią taktyką.
W efekcie program odczytujący
plik widzi jego oryginalną zawartość, zaś fizycznie plik nie jest zmieniany. Napisanie procedury stosującej powyższą metodę nie jest już jednak zadaniem tak łatwym, jak w poprzednim przypadku; należy rozważyć kilka możliwości związanych z położeniem wskaźnika zapisu/odczytu w stosunku do początku pliku. Aby uprościć to zadanie, często stosuje się zabieg polegający na tym, że przy otwieraniu zainfekowanego pliku zmniejsza się w wewnętrznych strukturach DOS (tablica SFT, opisana poniżej) jego długość o rozmiar wirusa. Wtedy, jedynym obszarem pliku, którym musi zająć się wirus, jest jego początek (np. w przypadku nagłówka plików EXE wirus powinien przywracać jego prawdziwą zawartość), gdyż operacje odczytu nigdy nie dojdą do dodanego na końcu pliku wirusa. Przy programowaniu wirusa wykorzystującego technikę stealth często przydatne są dwie wewnętrzne funkcje DOS (1216/1220/2F), służące do operowania na wewnętrznych strukturach DOS, tzw. tablicach SFT (ang. System File Table), zawierających wszelkie informacje o otwartym pliku. W systemie może istnieć kilka podtablic SFT, połączonych w łańcuch. Dostęp do zawartych w nich informacji o pliku uzyskuje się na podstawie uchwytu pliku zwracanego przez funkcje (3D,6C/21) przy jego otwieraniu. Uchwyt ten podaje się jako parametr funkcji (1216/1220/2F). Po ich użyciu najpierw uzyskujemy adres tzw. tablicy JFT (ang. Job File Table), opisującej pliki otwarte w danym procesie. Na jej podstawie otrzymujemy adres tablicy SFT opisującej dany plik. Używa się do tego poniższej sekwencji: ; Uzyskiwanie informacji o pliku na podstawie jego uchwytu MOV AX,1220h ; weč adres tablicy JFT zawieraj╣cej numer SFT, ; opisuj╣cej plik podany w BX MOV BX,UchwytPliku ; BX zawiera uchwyt (numer) pliku INT 2Fh ; wywo│aj funkcjŕ MOV BL,ES:[DI] ; weč numer tablicy SFT MOV AX,1216h ; weč adres tablicy SFT na podstawie numeru w BL INT 2Fh ; wywo│aj funkcjŕ ES:DI wskazuje na tablicŕ SFT pliku Jak widać, infekowanie pliku jest możliwe nawet przy jego zamykaniu. Format podtablicy SFT podano poniżej: Format podtablicy SFT Adres Zawartość 00-03 Wskaźnik do następnej podtablicy 04 N - liczba plików w podtablicy 06-40 Opis pliku nr 1 w podtablicy - patrz następna tablica Opis pliku nr N w podtablicy Opis pliku zawarty w tablicy SFT Adres Zawartość 00-01 Liczba łączników do pliku 02-03 Tryb 04 Atrybut pliku 05-06 Informacja o pliku 07-0A Wskaźnik do nagłówka programu obsługi lub do bloku DPB 0B-0C Pierwsza JAP pliku 0D-0E Czas ostatniej modyfikacji pliku 0F-11 Data ostatniej modyfikacji pliku 11-14 Rozmiar pliku 15-18 Aktualna pozycja wskaźnika odczytu/zapisu pliku 19-1A Względny numer JAP 1B-1E Położenie elementu katalogu opisującego plik 20-2A Nazwa i rozszerzenie pliku 2B-2E Wskaźnik do poprzedniego elementu SFT (pole programu SHARE) 2F-30 Numer komputera w sieci (pole programu SHARE) 31-32 Adres właściciela pliku (jego PSP) 33-34 Położenie w obszarze roboczym listy zablokowanych regionów pliku (pole programu SHARE) 35-36 Numer JAP 37-3A Wskaźnik do IFS pliku lub 00000000h Zamieszczony poniżej wirus stosuje technikę senii-stealth w odniesieniu do polecenia DIR i popularnych nakładek oraz full stealth oparty na tablicach SFT. ;----------------------------------------------------------------------------; ; ; ; Czesc ksiazki : "Nowoczesne techniki wirusowe i antywirusowe" ; ; ; ; KOMB_STE v1.0, Autor : Adam Blaszczyk 1997 ; ; ; ; Zmodyfikowany wirus KOMBAJN, rozszerzony o technike STEALTH ; ; ; ;----------------------------------------------------------------------------;
|
Wątki
|