|
WINDOWS OD ŚRODKA
YOSIFOVICH P. IONESCU A. RUSSINOVICH M.E. SOLOMON D.A. wydawnictwo: HELION , rok wydania 2018, wydanie VIIcena netto: 131.39 Twoja cena 124,82 zł + 5% vat - dodaj do koszyka Windows od środka
Architektura systemu, procesy, wątki, zarządzanie pamięcią i dużo więcej
Systemy operacyjne Windows 10 i Windows Server 2016 bardzo różnią się od swoich
poprzedników. Są bardziej złożone, a niektóre zastosowane rozwiązania można
określić jako zaawansowane i wysublimowane. Zwłaszcza znajomość wewnętrznych
mechanizmów systemu, architektury jądra i systemowego modelu bezpieczeństwa okazuje
się niezwykle istotna dla programistów i inżynierów ds. bezpieczeństwa. Bez tej
wiedzy trudno mówić o prawdziwie niezawodnej pracy oprogramowania tworzonego dla maszyn
pracujących pod kontrolą najnowszych wersji systemu Windows.
Ta książka jest pierwszym tomem klasycznego przewodnika po wewnętrznych
mechanizmach podstawowych komponentów systemu Windows. Omówiono w niej architekturę
systemu Windows, sposoby implementowania i modyfikacji procesów, przetwarzania wątków
oraz korzystania z pamięci fizycznej i wirtualnej. Sporo miejsca poświęcono operacjom
wejścia-wyjścia oraz integracji ze sterownikami poszczególnych urządzeń. Szczegółowo
przedstawiono zabezpieczenia wbudowane w system. Projektanci oprogramowania, specjaliści
ds. bezpieczeństwa oraz administratorzy systemów informatycznych znajdą tu wiele
ważnych informacji, dzięki którym dogłębnie zrozumieją sposób działania systemu,
co pozwoli im na podejmowanie lepszych decyzji.
Najważniejsze zagadnienia:
wprowadzenie do wewnętrznych mechanizmów systemu Windows
omówienie komponentów architektury systemu
procesy, zadania, wątki
funkcjonowanie menedżera pamięci i sposoby jej modyfikacji
operacje wejścia-wyjścia i obsługa urządzeń peryferyjnych
mechanizmy zabezpieczeń i zwalczanie złośliwego oprogramowania
- Wprowadzenie
- Historia książki
- Zmiany w siódmym wydaniu
- Praktyczne eksperymenty
- Pominięte zagadnienia
- Ostrzeżenie
- Założenia dotyczące czytelnika
- Struktura książki
- Konwencje
- Informacje o dodatkowych materiałach
- Podziękowania
- Rozdział 1. Zagadnienia i narzędzia
- Wersje systemu operacyjnego Windows
- Windows 10 i przyszłe wersje systemu Windows
- Windows 10 i platforma OneCore
- Podstawowe pojęcia i terminy
- Interfejs API systemu Windows
- Warianty interfejsu API systemu Windows
- Architektura Windows Runtime
- Środowisko .NET Framework
- Usługi, funkcje i programy
- Procesy
- Wątki
- Włókna
- Wątki planowania w trybie użytkownika
- Zadania
- Pamięć wirtualna
- Porównanie trybu jądra i trybu użytkownika
- Hipernadzorca
- Oprogramowanie sprzętowe
- Usługi terminalowe i wiele sesji
- Obiekty i dojścia
- Zabezpieczenia
- Rejestr
- Unicode
- Analizowanie wewnętrznych mechanizmów systemu Windows
- Monitor wydajności i Monitor zasobów
- Debugowanie jądra
- Symbole powiązane z debugowaniem jądra
- Debugging Tools for Windows
- Debugowanie w trybie użytkownika
- Debugowanie w trybie jądra
- Narzędzie LiveKd
- Windows Software Development Kit
- Windows Driver Kit
- Narzędzia z witryny Sysinternals
- Podsumowanie
- Rozdział 2. Architektura systemu
- Wymagania i cele projektowe
- Model systemu operacyjnego
- Opis architektury systemu
- Przenośność
- Wieloprocesorowość symetryczna
- Skalowalność
- Różnice między wersjami kliencką i serwerową
- Wersja Checked build (kompilacja testowa)
- Krótki opis architektury z mechanizmami bezpieczeństwa opartymi na wirtualizacji
- Kluczowe komponenty systemu
- Podsystemy środowiskowe i biblioteki podsystemów
- Uruchamianie podsystemu
- Podsystem Windows
- Inne podsystemy
- Pikodostawcy i podsystem Windows dla systemu Linux
- Biblioteka Ntdll.dll
- Obrazy natywne
- Centrum wykonawcze
- Jądro
- Obiekty jądra
- Obszar i blok kontrolny procesora
- Obsługa sprzętu
- Warstwa abstrakcji sprzętowej
- Sterowniki urządzeń
- Model sterowników systemu Windows
- Fundament sterownika
- Uniwersalne sterowniki Windows
- Procesy systemowe
- Proces bezczynności
- Proces System a wątki systemowe
- Proces bezpieczeństwa systemu
- Proces kompresji pamięci
- Menedżer sesji
- Procesy inicjalizacyjne
- Menedżer kontroli usług
- Procesy Winlogon, LogonUI oraz Userinit
- Podsumowanie
- Rozdział 3. Procesy i zadania
- Tworzenie procesu
- Argumenty funkcji CreateProcess*
- Tworzenie nowoczesnych procesów systemu Windows
- Tworzenie innych rodzajów procesów
- Wewnętrzne elementy procesów
- Chronione procesy
- Protected Process Light (PPL)
- Obsługa zewnętrznych procesów przez rozszerzenie PPL
- Procesy minimalne i procesy Pico
- Procesy minimalne
- Procesy Pico
- Programy Trustlet (bezpieczne procesy)
- Struktura programu Trustlet
- Metadane zasad programów Trustlet
- Atrybuty programów Trustlet
- Programy Trustlet wbudowane w system
- Tożsamość programów Trustlet
- Usługi izolowanego trybu użytkownika
- Wywołania systemowe dostępne dla programów Trustlet
- Przepływ funkcji CreateProcess
- Etap 1. Przekształcanie i sprawdzanie poprawności parametrów i flag
- Etap 2. Otwieranie obrazu do wykonania
- Etap 3. Tworzenie obiektu procesu wykonawczego systemu Windows
- Etap 3A. Konfigurowanie obiektu EPROCESS
- Etap 3B. Tworzenie początkowego obszaru adresów procesu
- Etap 3C. Tworzenie struktury procesu jądra
- Etap 3D. Zakończenie konfigurowania obszaru adresów procesu
- Etap 3E. Konfigurowanie struktury PEB
- Etap 3F. Zakończenie konfigurowania obiektu procesu wykonawczego
- Etap 4. Tworzenie początkowego wątku oraz jego stosu i kontekstu
- Etap 5. Przeprowadzanie inicjalizacji powiązanej z podsystemem systemu Windows
- Etap 6. Rozpoczęcie wykonywania wątku początkowego
- Etap 7. Przeprowadzanie inicjalizacji procesu w kontekście nowego procesu
- Kończenie procesu
- Program ładujący obrazy
- Wczesna inicjalizacja procesu
- Przekierowywanie i rozwiązywanie nazw bibliotek DLL
- Przekierowywanie nazw bibliotek DLL
- Baza danych załadowanych modułów
- Analizowanie importu
- Inicjalizacja procesu po imporcie
- Technologia SwitchBack
- Identyfikatory GUID technologii SwitchBack
- Tryby zgodności technologii SwitchBack
- Działanie technologii SwitchBack
- Mechanizm API Sets
- Zadania
- Limity zadań
- Obsługa zadania
- Zadania zagnieżdżone
- Kontenery systemu Windows (silosy serwerowe)
- Obiekty zadania i silosy
- Izolacja silosów
- Granice izolacji silosów
- Konteksty silosów
- Monitory silosów
- Tworzenie silosu serwerowego
- Funkcja pomocnicza
- Szablon kontenera
- Podsumowanie
- Rozdział 4. Wątki
- Tworzenie wątków
- Wewnętrzne mechanizmy wątków
- Struktury danych
- Powstanie wątku
- Sprawdzanie aktywności wątków
- Ograniczenia wątków chronionych procesów
- Planowanie wątków
- Przegląd planowania w systemie Windows
- Poziomy priorytetów
- Priorytety czasu rzeczywistego
- Użycie narzędzi pozwalających na interakcję z priorytetem
- Stany wątków
- Baza danych dyspozytora
- Kwant
- Obliczanie kwantu czasu
- Kontrolowanie kwantu czasu
- Zmienne kwanty czasu
- Wartość rejestru z ustawieniami kwantu czasu
- Zwiększanie priorytetu
- Zwiększenia priorytetu spowodowane zdarzeniami planisty/dyspozytora
- Przyspieszenie przechodzenia ze stanu oczekiwania
- Zwiększenia priorytetu związane z własnością blokady
- Zwiększenia priorytetu po zakończeniu operacji wejścia-wyjścia
- Zwiększenia priorytetu podczas oczekiwania na zasoby wykonawcze
- Zwiększenia priorytetu wątków pierwszoplanowych po oczekiwaniu
- Zwiększenia priorytetu wątków graficznego interfejsu użytkownika po ich aktywacji
- Zwiększenia priorytetu związane z brakiem dostępu do zasobów procesora
- Stosowanie zwiększeń priorytetu
- Usuwanie zwiększeń priorytetu
- Zwiększenia priorytetu w wypadku gier i aplikacji multimedialnych
- Automatyczne zwiększanie priorytetu
- Przełączanie kontekstu
- Warianty planowania
- Dobrowolne przełączanie
- Wywłaszczanie
- Upłynięcie kwantu czasu
- Zakończenie
- Wątki bezczynności
- Wstrzymanie wątków
- Głębokie zamrożenie
- Wybór wątku
- Systemy wieloprocesorowe
- Zestawy pakietu i zestawy SMT
- Systemy NUMA
- Przypisywanie procesorów do grupy
- Procesory logiczne przypadające na grupę
- Stan procesora logicznego
- Skalowalność planisty
- Koligacja
- Rozszerzona maska koligacji
- Systemowa maska koligacji
- Idealny i ostatni procesor
- Idealny węzeł
- Zestawy procesorów
- Wybór wątku w systemach wieloprocesorowych
- Wybór procesora
- Wybór procesora dla wątku, gdy dostępne są bezczynne procesory
- Wybór procesora dla wątku, gdy nie ma żadnych bezczynnych procesorów
- Planowanie heterogeniczne (big.LITTLE)
- Planowanie oparte na grupach
- Planowanie dynamiczne ze sprawiedliwym udostępnianiem
- Limity wykorzystania procesora
- Dynamiczne dodawanie i usuwanie procesorów
- Fabryki procesów roboczych (pule wątków)
- Tworzenie fabryki wątków roboczych
- Podsumowanie
- Rozdział 5. Zarządzanie pamięcią
- Wprowadzenie do menedżera pamięci
- Składniki menedżera pamięci
- Strony małe i duże
- Sprawdzanie wykorzystania pamięci
- Synchronizacja wewnętrzna
- Usługi menedżera pamięci
- Stany stron i przydzielanie pamięci
- Ładunek deklaracji i limit deklaracji
- Blokowanie pamięci
- Ziarnistość alokacji
- Pamięć współdzielona i pliki mapowane
- Ochrona pamięci
- Zapobieganie wykonywaniu danych
- Kopiowanie przy zapisie
- Okienkowe poszerzanie przestrzeni adresowej
- Sterty w trybie jądra (systemowe pule pamięci)
- Rozmiary pul
- Monitorowanie wykorzystania puli
- Listy asocjacyjne
- Menedżer sterty
- Sterty procesu
- Typy stert
- Sterta NT
- Synchronizacja sterty
- Sterta o małej fragmentacji
- Sterta segmentowa
- Bezpieczeństwo stert
- Funkcje bezpieczeństwa typowe dla stert segmentowych
- Funkcje debugowania sterty
- Mechanizm pageheap
- Sterta odporna na błędy
- Układy wirtualnej przestrzeni adresowej
- Układy przestrzeni adresowej na platformie x86
- Układ systemowej przestrzeni adresowej na platformie x86
- Przestrzeń sesji na platformie x86
- Systemowe wpisy tabeli stron
- Układ przestrzeni adresowej na platformie ARM
- Układ przestrzeni adresowej 64-bitowej
- Ograniczenia adresowania wirtualnego na platformie x64
- Dynamiczne zarządzanie systemową wirtualną przestrzenią adresową
- Przydziały systemowej wirtualnej przestrzeni adresowej
- Układ przestrzeni adresowej użytkownika
- Randomizacja obrazu
- Randomizacja stosu
- Randomizacja sterty
- ASLR w przestrzeni adresowej jądra
- Kontrolowanie ograniczeń ochronnych
- Tłumaczenie adresów
- Tłumaczenie adresów wirtualnych na platformie x86
- Tabele stron i ich wpisy
- Bity zapisu sprzętowego i programowego we wpisach tabeli stron
- Asocjacyjny bufor translacji
- Tłumaczenie adresów wirtualnych na platformie x64
- Tłumaczenie adresów wirtualnych na platformie ARM
- Obsługa błędów strony
- Niewłaściwe wpisy PTE
- Prototypowe wpisy PTE
- Operacje wejścia-wyjścia w stronicowaniu
- Błąd strony kolidującej
- Błędy stron klastrowanych
- Pliki stronicowania
- Plik wymiany
- Wirtualny plik stronicowania
- Ładunek deklaracji i systemowy limit deklaracji
- Ładunek deklaracji a rozmiar pliku stronicowania
- Stosy
- Stosy użytkownika
- Stosy jądra
- Stos DPC
- Deskryptory adresów wirtualnych
- Struktury VAD procesu
- Rotacja deskryptorów adresów wirtualnych
- NUMA
- Obiekty sekcji
- Zestawy robocze
- Stronicowanie na żądanie
- Logiczny prefetcher i funkcja ReadyBoot
- Strategia rozmieszczania
- Zarządzanie zestawami roboczymi
- Menedżer zestawu równowagi i program wymiany
- Systemowe zestawy robocze
- Powiadomienia o stanie pamięci
- Baza danych numerów stron pamięci
- Dynamika list stron
- Priorytet stronicowy
- Moduł zapisujący strony zmodyfikowane i zmapowane
- Struktury danych PFN
- Rezerwacja pliku stronicowania
- Ograniczenia pamięci fizycznej
- Limity pamięci w klienckich wersjach systemu Windows
- Kompresja pamięci
- Ilustracja kompresji
- Architektura kompresji
- Partycje pamięci
- Scalanie pamięci
- Etap wyszukiwania
- Etap klasyfikacji
- Etap scalania stron
- Konwersja wpisu PTE z prywatnego na współdzielony
- Zwalnianie stron scalonych
- Enklawy pamięci
- Interfejs programowy
- Przygotowywanie enklaw pamięci
- Konstruowanie enklawy
- Wczytywanie danych do enklawy
- Inicjalizacja enklawy
- Proaktywne zarządzanie pamięcią (mechanizm SuperFetch)
- Komponenty
- Śledzenie i rejestrowanie
- Scenariusze
- Priorytet strony oraz ponowne bilansowanie
- Niezawodność działania
- Funkcja Ready Boost
- Funkcja Ready Drive
- Dublowanie procesu
- Podsumowanie
- Rozdział 6. System operacji wejścia-wyjścia
- Komponenty systemu operacji wejścia-wyjścia
- Menedżer operacji wejścia-wyjścia
- Typowe przetwarzanie operacji wejścia-wyjścia
- Poziomy żądań przerwania IRQL i wywołania DPC
- Poziomy żądań przerwania
- Wywołania DPC
- Sterowniki urządzeń
- Typy sterowników urządzeń
- Sterowniki WDM
- Warstwy sterowników
- Struktura sterownika
- Obiekty sterowników i obiekty urządzeń
- Otwieranie urządzeń
- Przetwarzanie operacji wejścia-wyjścia
- Typy operacji wejścia-wyjścia
- Synchroniczne i asynchroniczne operacje wejścia-wyjścia
- Szybka operacja wejścia-wyjścia
- Operacja wejścia-wyjścia z mapowaniem plików i buforowanie plików
- Operacja wejścia-wyjścia z techniką rozrzucania/zbierania
- Pakiety żądań operacji wejścia-wyjścia IRP
- Położenia stosu operacji wejścia-wyjścia
- Przepływ pakietu IRP
- Żądanie operacji wejścia-wyjścia wysyłane do jednowarstwowego sterownika
urządzenia
- Dostęp do buforu obszaru adresów użytkownika
- Buforowana operacja wejścia-wyjścia
- Bezpośrednia operacja wejścia-wyjścia
- Żadna operacja wejścia-wyjścia
- Synchronizacja
- Żądania operacji wejścia-wyjścia kierowane do sterowników z warstwami
- Operacja wejścia-wyjścia agnostyczna względem wątków
- Anulowanie operacji wejścia-wyjścia
- Anulowanie operacji wejścia-wyjścia zainicjowane przez użytkownika
- Anulowanie operacji wejścia-wyjścia w przypadku zakończenia wątku
- Porty ukończenia operacji wejścia-wyjścia
- Obiekt IoCompletion
- Użycie portów ukończenia
- Działanie portu ukończenia operacji wejścia-wyjścia
- Określanie priorytetu operacji wejścia-wyjścia
- Priorytety operacji wejścia-wyjścia
- Strategie określania priorytetów
- Unikanie inwersji priorytetów operacji wejścia-wyjścia
- Zwiększanie i podnoszenie priorytetu operacji wejścia-wyjścia
- Rezerwacja przepustowości (zaplanowana operacja wejścia-wyjścia na pliku)
- Powiadomienia kontenerów
- Driver Verifier
- Opcje weryfikacji powiązane z operacjami wejścia-wyjścia
- Opcje weryfikacji związane z pamięcią
- Special Pool
- Śledzenie puli
- Wymuszanie sprawdzania poziomu IRQL
- Low Resources Simulation
- Systematic Low Resources Simulation
- Różne sprawdzenia
- Menedżer technologii PnP
- Poziom obsługi technologii Plug and Play
- Wyliczanie urządzeń
- Stosy urządzeń
- Ładowanie sterowników stosu urządzeń
- Obsługa technologii Plug and Play przez sterowniki
- Instalacja sterownika Plug and Play
- Ładowanie i instalowanie ogólnego sterownika
- Ładowanie sterowników
- Instalacja sterownika
- Środowisko WDF
- Środowisko KMDF
- Struktura i działanie sterownika KMDF
- Model obiektów KMDF
- Model operacji wejścia-wyjścia środowiska KMDF
- Środowisko UMDF
- Menedżer zasilania
- Stany Connected Standby i Modern Standby
- Działanie menedżera zasilania
- Działanie zasady zasilania związanej ze sterownikami
- Kontrola zasilania urządzenia przez aplikację i sterownik
- Środowisko zarządzania zasilaniem
- Zarządzanie stanami wydajności
- Żądania dostępności zasilania
- Podsumowanie
- Rozdział 7. Bezpieczeństwo
- Klasy bezpieczeństwa
- Kryteria oceny zaufanych systemów komputerowych (TCSEC)
- Wspólne kryteria
- Składniki systemu zabezpieczeń
- Bezpieczeństwo oparte na wirtualizacji
- Ochrona poświadczeń
- Ochrona hasła
- Ochrona klucza NTOWF (TGT)
- Bezpieczna komunikacja
- Blokada UEFI
- Reguły uwierzytelniania i pancerny Kerberos
- Przyszłe usprawnienia
- Ochrona urządzenia
- Ochrona obiektów
- Sprawdzanie dostępu
- Identyfikatory zabezpieczeń
- Poziomy integralności
- Tokeny
- Personifikacja
- Tokeny ograniczone
- Filtrowany token administracyjny
- Wirtualne konta usług
- Deskryptory zabezpieczeń i kontrola dostępu
- Przypisywanie list ACL
- Zaufane wpisy ACE
- Określanie dostępu
- Dynamiczna kontrola dostępu
- Interfejs AuthZ
- Prawa i przywileje konta
- Prawa konta
- Przywileje
- Superprzywileje
- Tokeny dostępowe procesów i wątków
- Inspekcje zabezpieczeń
- Inspekcje dostępu do obiektów
- Globalne zasady inspekcji
- Ustawienia zaawansowanych zasad inspekcji
- Kontenery aplikacji
- Przegląd aplikacji UWP
- Kontener aplikacji
- Bezpieczeństwo środowiska AppContainer
- Możliwości kontenera aplikacji
- Kontener aplikacji a przestrzeń nazw obiektów
- Uchwyty kontenera aplikacji
- Brokery
- Logowanie
- Inicjacja procesu Winlogon
- Etapy logowania użytkownika
- Wzmocnione uwierzytelnianie
- Biometria w systemie Windows
- Windows Hello
- Kontrola konta użytkownika i wirtualizacja
- Wirtualizacja systemu plików i rejestru
- Wirtualizacja plików
- Wirtualizacja rejestru
- Podwyższanie uprawnień
- Uruchamianie aplikacji z uprawnieniami administracyjnymi
- Żądanie uprawnień administracyjnych
- Automatyczne podnoszenie uprawnień
- Ustawianie kontroli konta użytkownika
- Osłabianie exploitów
- Zasady osłabiania procesów
- Integralność przepływu sterowania
- Ochrona przepływu sterowania
- Bitmapa CFG
- Konstruowanie bitmapy CFG
- Wzmacnianie mechanizmu CFG
- Współdziałanie modułu ładującego z mechanizmem CFG
- Ochrona CFG w jądrze
- Asercje bezpieczeństwa
- Obsługa kompilatora i systemu operacyjnego
- Kody asercji bezpieczeństwa
- Identyfikacja aplikacji
- AppLocker
- Zasady ograniczeń oprogramowania
- Ochrona przed poprawkami jądra
- Podsumowanie
864 stron, Format: 16.5x24.5cm, oprawa twarda
Po otrzymaniu zamówienia poinformujemy, czy wybrany tytuł polskojęzyczny lub
anglojęzyczny jest aktualnie na półce księgarni.
|