
Windows內核與高級調試培訓
第一部分:Windows NT核心特征
(1.5 hours)
特殊的FS段,TEB,PCR,地址空間,虛擬內存原理,系統調用,系統組件,HAL、內核、執行體、系統進程(IDLE、SMSS.EXE、WinLogon.EXE),子系統
第二部分:ACPI基礎
(1 hour)
ACPI是BIOS和操作系統之間的重要接口,理解ACPI對于理解驅動程序、電源管理和操作系統內核都有著極其重要的意義。本章介紹的要點包括:ASL原理,編譯和執行方法,設備ID,Control Method,AcpiDump工具,從驅動調用ACPI CM,使用內核調試跟蹤和調試ACPI腳本,UEFI結構,UEFI的模塊,UEFI Shell,UEFI的啟動過程(模塊加載),UEFI的調試
第三部分:WinDBG精要
(1.5 hours)
WinDBG的命令類型,常用命令,命令語法,調試符號,符號文件的種類,符號服務器,定制調試事件的方法和重要的調試命令,軟件斷點、硬件斷點,復雜的斷點命令,x86寄存器和反匯編技巧
第四部分:調試啟動過程
(2 hours)
現場跟蹤Windows系統的啟動過程,解析其中的重要步驟和關鍵細節:內核初始化,CPU初始化,執行體的階段0和階段1初始化,SMSS,CSRSS和WinLogon,UserInit以及Shell。
第四部分:調試啟動過程
現場跟蹤Windows系統的啟動過程,解析其中的重要步驟和關鍵細節:內核初始化,CPU初始化,執行體的階段0和階段1初始化,SMSS,CSRSS和WinLogon,UserInit以及Shell。
第五部分:內存管理器
(1.5 hours)
內存管理的多級架構,內存管理器,大內存頁及其使用,6大工作線程,內核池,分頁內核和非分頁內核池,PFN數據庫,虛擬地址空間的管理(VAD)
第六部分:棧
(2 hours)
詳細介紹棧的自動增長機制,棧幀的組織方法,并通過實例演示棧溢出攻擊的原理,通過Windows 7系統的真實案例介紹基于Cookie的溢出檢測機制,內核態棧溢出,以及雙誤崩潰
第七部分:I/O子系統和內核態驅動
(1.5 hours)
I/O子系統架構,I/O管理器,驅動程序類型,設備樹,ACPI,理解ACPI腳本,PCI總線概要,PnP,I/O子系統的建立過程,設備棧,PDO,FDO,IRP,常用的調試命令;驅動驗證器:驗證原理,驗證項目,啟用方法,使用WinDBG分析驗證失敗,WHCK測試,實例分析
試驗:
(0.5hour)
分析雙誤異常導致的系統崩潰轉儲文件
第八部分:存儲和文件系統
(1 hour)
磁盤端口驅動,分區管理,卷,磁盤過濾驅動,Smart Card Reader的設備棧
第九部分:網絡
(1.5 hours)
背景,NT的網絡架構,WinSock API,LSP (Layered Service Provider),AFD,Kernel Socket,TCP/IP,NDIS,Windows Filter Platform (WFP)
第十部分:音視頻流
(1 .5 hours)
AVStrean(KS.sys)概要、架構,AVStream Mini驅動,USB Video,USB Camera設備棧;UAA,HD Audio,有關工具GraphEdit和KsStudio
第十一部分:系統崩潰和轉儲
(1.5 hours)
系統崩潰概覽,Windows藍屏崩潰(BSOD)的過程,系統轉儲,轉儲文件的產生過程,轉儲失敗的原因,分析系統轉儲的方法,自動分析,自動分析的局限,真實案例解析:雙誤導致的崩潰,掛死在DPC,回退到錯誤現場的方法,從棧上尋找線索
第十二部分:系統死鎖
(1.5 hours)
系統掛死,典型原因,解決方法,窗口子系統掛死,資源鎖,!locks,IRQL,掛死在高IRQL,中斷風暴