Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
doktórejodsyłaczznajdujesięwpoluDriverSectionstrukturyDRIVER_OB-
JECT.Każdyładowanysterowniktrybujądramaodpowiadającąmustruk-
turęDRIVER_OBJECT.
typedefstruct_KLDR_DATA_TABLE_ENTRY{
LIST_ENTRYInLoadOrderLinks;
LIST_ENTRYInMemoryOrderLinks;
LIST_ENTRYInInitializationOrderLinks;
PVOIDExceptionTable;
ULONGExceptionTableSize;
PVOIDGpValue;
PNON_PAGED_DEBUG_INFONonPagedDebugInfo;
PVOIDImageBase;
PVOIDEntryPoint;
ULONGSizeOfImage;
UNICODE_STRINGFullImageName;
UNICODE_STRINGBaseImageName;
ULONGFlags;
USHORTLoadCount;
USHORTReserved1;
PVOIDSectionPointer;
ULONGCheckSum;
PVOIDLoadedImports;
PVOIDPatchInformation;
}KLDR_DATA_TABLE_ENTRY,*PKLDR_DATA_TABLE_ENTRY;
Listing1.1.UkładstrukturyKLDR_DATA_TABLE_ENTRYwskazywanejprzezpole
DriverSection
PowybraniudocelowegosterownikadropperTDL3modyfikujeobraz
sterownikawpamięci,nadpisującpoczątkowekilkasetbajtówjegosekcji
zasobów.rsrczłośliwymloaderem.Jestonprosty:jedynieładujezdysku
twardegowtrakcierozruchuresztępotrzebnegomukoduzłośliwego
oprogramowania.
Oryginalne,nadpisanebajtyzsekcji.rsrcktórenadalniezbędne
sterownikowi,abymógłpoprawniefunkcjonowaćprzechowywane
wplikuonazwiersrc.datwukrytymsystemieplikówutrzymywanymprzez
złośliweoprogramowanie.(Zauważmy,żeinfekcjaniezmieniarozmiaru
plikuzainfekowanegosterownika).PowykonaniutejmodyfikacjiTDL3
zmieniawskaźnikentrypointwnagłówkuPortableExecutable(PE)sterow-
nika,abywskazywałnazłośliwyloader.Tymsamymadrespunktuwejścia
sterownikazainfekowanegoprzezTDL3wskazujesekcjęzasobów,conie
jestdopuszczalnewnormalnychwarunkach.Narysunku1.1jestpokazany
sterownikrozruchowyprzedipoinfekcji,widaćwięc,jakobrazsterownika
zostałzainfekowany,zetykietąHeaderodwołującąsiędonagłówkaPEwraz
ztabeląsekcji.
6
Rozdział1