Menu

Jádro systému Windows na stránkách Computer Press


Implementace systémů HIPS I: úvod a modifikace kódu

Tento text vznikl jako příprava mých přednášek na konferencích SOOM.cz Hacking & Security Konference a Security Session. Vytvořil jsem jej podle snímků obou prezentací, které lze chápat jako osnovu. Text obsahuje přesnější informace než prezentace, které si kladly za cíl hlavně nezamotat hlavu posluchačů údaji, jenž sice jsou pravdivé, ale v rámci přednášek zbytečně složité. [...]

Ukázka rozhraní OB Filtering Model

Rozhraní OB Filtering Model se objevilo ve Windows Vista Service Pack 1 a klade si za cíl poskytnout programátorům systémů HIPS pomoc při implementaci kontroly přístupů k objektům procesů a vláken. Rozhraní funguje podobně jako leckterá jiná – ovladač voláním rutiny CmObRegisterCallbacks předá jádro operačního systému adresu zpětně volané funkce, které jádro předá řízení, kdykoliv [...]

Security session

Z ohlasů na moji přednášku na konferenci Security Session zatím usuzuji, že byla přijata velmi kladně. Dostal jsem ale také konstruktivní kritiku, takže se příště pokusím vynechat pasáže, které na vás, posluchače, se zdály býti příliš technické, nebo vám nepřišly až tak zajímavé jako mně. Opět si můžete stáhnout mojí prezentaci a poznámky, které vznikly [...]

Martin Dráb na konferencích

Na počátku února jsem se zúčastnil Hacking & Security konference pořádané serverem SOOM.cz. Z ohlasů na moji přednášku věnovanou implementaci systémů HIPS zatím usuzuji, že se vám líbila. Ohlasů jsem dostal ale relativně málo, takže tento výsledke nelze považovat za zcela objektivní. Pokud byste někdo ještě chtěl sdělit svůj názor na tuto přednášku, budu rád, [...]

Deskriptory virtuálních adres IV: Reálně se vyskytující deskriptory a závěr

V posledním dílu malého seriálu o deskriptorech virtuálních adres si ukážeme, jakými deskriptory operační systém popisuje paměť alokovanou či rezervovanou pro různé účely, jako je mapování souboru, mapování fyzické paměti pomocí rozšíření AWE či alokace privátních stránek provedená klasickým způsobem. Další části tohoto článku se již deskriptorům virtuálních adres nevěnují. Popisují nástroje, které jsem při [...]

Další vylepšení programu Vad

Dnes jsem se rozhodl na těchto stránkách zveřejnit nejnovější verzi utility Vad. Tento krok můžete brát jako předzvěst posledního dílu malého seriálu o dsskriptorech virtuálních adres. Nová verze programu Vad přináší následující změny: Opraveny definice struktur MMVAD_XXX v ovladači vad.sys. Naštěstí chyby neměly vliv na fungování předchozích verzí programu. Ovladač nyní dokáže z deskriptorů zjistit [...]

Deskriptory virtuálních adres III: do nitra deskriptoru

Z minulých dílů seriálu jste se dozvěděli, jak deskriptory virtuálních adres vypadají. Dnešní díl navazuje informacemi o významu některých položek struktur MMVAD_XXX. Velmi zajímavou částí struktur deskriptorů virtuálních adres tvoří pole příznaků. Definují je struktury MMVAD_FLAGS, MMVAD_FLAGS2 a MMVAD_FLAGS3. Krátké deskriptory, reprezentující obvykle privátní paměť procesu, obsahují pouze první a třetí skupinu. Přitom právě příznaky [...]

Deskriptory virtuálních adres II: pod povrchem adresového prosotru

Druhá část seriálu o interní struktuře a reprezentaci privátní části virtuálních adresových prostorů ve Windows. Dozvíte se v ní mimo jiné, co to vlastně ten deskriptor virtálních adres je. Než se pomocí pomyslného vrtáku probouráme pod povrch virtuálního adresového prostoru, dovolím si upozornit, že se dostáváme do málo známých vod jádra operačního systému, které se [...]

Deskriptory virtuálních adres I: virtuální adresový prostor

Každá běžící aplikace disponuje vlastním virtuálním adresovým prostorem. Do jeho horní části operační systém mapuje paměť jádra. Horní poloviny všech virtuálních adresových prostorů jsou téměř identické. Zbývající část (2-3 GB na architektuře IA32, několik TB na 64bitových platformách) může proces využívat k ukládání vlastních dat, mapování souborů a knihoven a dalším účelům, které vás jen [...]

Opravené verze projektů ObInit, ObjView a Vad

Nedávno jsem dokončil jednu malou utilitu, kterou bylo nutné otestovat na co nejvíce různých verzích Windows, včetně těch verzí, které se liší pouze číslem Service Packu. Z tohoto důvodu jsem byl nucen kompletně předělat své portfolio virtuálních strojů, které obsahovalo pouze instalace plně aktualizovaných systémů od každé verze (tedy byly například zastoupeny Windows Vista SP2, [...]

Jak jsem psal knihu

V této stati bych rád přiblížil své zážitky a pocity při psaní knihy. Celý proces od počátku až do vydání trval dva roky a jeden měsíc. Za tu dobu jsem zažil těžké časy, krásné chvíle a přišel o některé iluze. Cesta ke smlouvě: jak to všechno začalo Myšlenka uložení znalostí do delšího textu ve mně [...]

Struktura zdrojových kódů

Zdrojové kódy jednotlivých ukázkových programů (a ovladačů) naleznete zabalené v archivech. Tyto archivy mají jednotnou strukturu. Kořenový adresář archivu obsahuje dva podadresáře: bin a src. První z nich uchovává binárky dané ukázkové aplikace (včetně ovladače). Druhý obsahuje všechny zdrojové kódy. Pozor, kompilace neprobíhá automaticky do adresáře bin. V budoucnosti však pravděpodobně všechny projekty nastavím tak, [...]

Testování ovladačů na 64bitových Windows

Pokud si chcete zdrojové kódy nalezené na této stránce spustit na 64bitových verzích Windows, nestačí je pouze zkompilovat či vzít již hotové binárky a zmáčknout ENTER. Jádra 64bitových Windows totiž ve standardním nastavení nedovolují přítomnost ovladačů, které nejsou digitálně podepsané certifikátem od některé z důvěryhodných certifikačních autorit. Toto nastavení je (samozřejmě pouze pro testovací účely) [...]