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