张老师的内核调试公开课,于2014年1月18-19日上海开课,开年第一堂!
时间长度:2天
形式:讲解 + 动手实验 + 真实案例演示
第一部分:Windows NT核心特征 (2 hours)
地址空间,虚拟内存原理,Page Fault,系统调用,内核态的关键组件,用户态的关键组件,环境子系统,会话
第二部分:WinDBG精要(1小时)
WinDBG的命令类型,常用命令,命令语法,调试符号,符号文件的种类,符号服务器,定制调试事件的方法和重要的调试命令,软件断点、硬件断点,复杂的断点命令
试验一:内核调试环境建立和调试系统崩溃(BSOD)
第三部分:调试启动过程 (1.5 hours)
现场跟踪Windows系统的启动过程,解析其中的重要步骤和关键细节:内核初始化,CPU初始化,执行体的阶段0和阶段1初始化,SMSS,CSRSS和WinLogon,UserInit以及Shell。
第四部分:系统崩溃和转储 (2 hour)
系统崩溃概览,Windows蓝屏崩溃(BSOD)的过程,Linux的Panic过程(包括产生call stack和寻找函数符号的方法),系统转储,分析系统转储的方法,真实案例分析:双误导致的崩溃,挂死在DPC
第五部分:内存管理器 (1.5 hour)
内存管理的多级架构,内存管理器,大内存页及其使用,6大工作线程,内核池,分页内核和非分页内核池,PFN数据库,虚拟地址空间的管理(VAD)
第六部分:I/O子系统和内核态驱动 (1.5 hours)
I/O子系统架构,I/O管理器,驱动程序类型,设备树,ACPI,理解ACPI脚本,PnP,I/O子系统的建立过程,设备栈,PDO,FDO,IRP,驱动程序验证器
试验二:分析双误异常导致的系统崩溃转储文件
第七部分:存储和文件系统 (2 hours)
磁盘和文件系统架构,磁盘驱动,端口驱动,卷,分区,文件系统,文件系统的过滤驱动,Mini Filter,实际案例分析:因为文件过滤驱动而导致的系统死锁
第八部分:网络(1.5 hours)
背景,NT的网络架构,WinSock API,LSP (Layered Service Provider),AFD,Kernel Socket,TCP/IP,NDIS,Windows Filter Platform (WFP)
报名咨询:
赵小姐 13820105680 reki@msup.net
【大纲略微更新,加入了些新的内容】
第三部分:内核调试引擎(1小时)
两种软件哲学,内核调试引擎(结构,重要的函数全局变量,工作原理),五种连接方式,启用方法,PCR,双击用户态调试
试验一:内核调试环境建立和调试系统崩溃(BSOD)(0.5小时)
第四部分:调试启动过程 (1.5 hours)
试验二:分析双误异常导致的系统崩溃转储文件(0.5小时)
第九部分:网络(1.5 hours)
第十部分:系统崩溃和转储 (1 hour)
系统崩溃概览,Windows蓝屏崩溃(BSOD)的过程,Linux的Panic过程(包括产生call stack和寻找函数符号的方法),系统转储
第十一部分:转储分析(1.4小时)
分析系统转储的方法,自动分析,自动分析的局限,真实案例解析:双误导致的崩溃,挂死在DPC,回退到错误现场的方法,从栈上寻找线索
第十二部分:系统死锁(1小时)
系统挂死,典型原因,解决方法,窗口子系统挂死,资源锁,!locks,IRQL,挂死在高IRQL,中断风暴