4006-998-758
3000+课程任你选择
Windows内核与高级调试
研发学院 软件架构师 系统调试专家 开课时间:2021-07-30
张银奎

1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20年,拥有13年Intel工作经历,任职于INTEL公司的上海研发中心,先后在PASD、DEG、CPG、PCCG、VPG等部门工作。在英特尔先后从事软件开发、系统测试、架构设计等工作,呈担任英特尔架构事业部视觉与并行计算事业群担任首席软件架构师职务。

对IA-32架构、操作系统内核、驱动程序、设计模式、软件调优、C和C++等有深厚的工作经验,对于精炼、易于维护的代码有不懈追求。10多年GPU、CPG等深度优化技术积累和代码重构经验,每天的主要工作除了设计和编写代码外,就是调试和重构C语言代码。


查看老师详情
课程内容

课程大纲


直到今天,Windows仍然是软件历史上最复杂的操作系统,深入理解这个操作系统对于任何软件工程师来说都是一个巨大的挑战。本培训借助调试器这把利剑,深入Windows系统内部,以生动鲜活的方式,解读IRQL、IRP、设备栈等诸多难以理解的概念,领略NT内核的博大精深,感悟软件的真谛。


课程大纲


      主题

                                              内容

第一部分: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,中断风暴


返回上一级