Wirusy komputerowe

Page 55

Aby wgrać VxD-ka dynamicznego do pamięci operacyjnej musimy skorzystać z dodatkowego programu. Za załadowanie VxD-ka do pamięci odpowiada API CreateFileA natomiast za deinstalacje VxD-ka odpowiada API CloseHandle. Oto przykład prostego loaderka VxD-ków : .486P .Model Flat ,StdCall Extrn Extrn Extrn Extrn

MessageBoxA:PROC exitprocess:PROC CreateFileA:PROC CloseHandle:PROC

.data file1 db fbox db ftitle db ftitle2 db uchwyt dd .code

“\\.\FIRST.vxd”,0 “Loader VxD”,0 “Nie zaladowano VxD”,0 “VxD zaladowany”,0 0

main: call CreateFileA,offset file1,0,0,0,0,FILE_FLAG_DELETE_ON_CLOSE,0 cmp eax,-1 je Blad mov uchwyt,eax call MessageBoxA,0,offset ftitle2,offset fbox,0 jmp endprog Blad: call MessageBoxA,0,offset ftitle,offset fbox,0 endprog: call CloseHandle, uchwyt call exitprocess,0 end main Każdy sterownik urządzenia musi zadeklarować nazwę, numer wersji, kolejność inicjalizacji oraz punkt wejścia do procedury kontrolnej. Wiele sterowników urządzeń deklaruje również swój identyfikator oraz procedury API. Aby zadeklarować te rzeczy używamy makra Declare_Virtual_Device. Przykładowe użycie : Declare_Virtual_Device

VSTER, 1, 1, VSTER _Control, \ VSTER _Device_ID, VSTER _Init_Order, \ VSTER _V86_API_Handler, VSTER _PM_API_Handler

Powyższy przykład deklaruje sterownik urządzenia o nazwie VSTER w wersji 1.1. VMM używa informacji zadeklarowanych przez to makro do zainicjowania VxD w pamięci komputera, do procedury VSTER_Control wysyła komunikaty i pozwala aplikacjom MS-DOS oraz innym VxD wywoływać serwisy, udostępniane przez ten sterownik. Aby umożliwić dostęp do tych informacji sterownikowi VMM, makro to, tworzy blok opisu urządzenia DDB (Device Descriotor Block) w segmencie _LDATA (segmencie danych trybu chronionego). Blok opisu urządzenia ma identyczny format jak struktura VxD_Desc_Block. Sterownik urządzenia definiuje swój Device_ID. Jest to unikatowy numer. Używa go 55


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.