本文共 3607 字,大约阅读时间需要 12 分钟。
时间:2017年10月20日 - 10月22日(周五-周日)(每天7小时)
地点:上海
形式:讲解、演示和动手实验
培训对象:在Windows平台上从事开发或测试的软件工程师、项目带头人和技术经理
主办单位:高端调试网站、上海曜印网络科技有限公司
研习提纲:
【DAY 1】
第一部分:WindowsNT核心特征 (1.5小时)
要点:特殊的FS段,TEB,PCR,地址空间,32位、44位和48位线性地址空间,系统调用,WoW,系统组件,HAL、内核、执行体,重要的驱动程序(KS、DXGKRNL),系统进程(IDLE、SMSS.EXE、WinLogon.EXE),子系统、Win32K,Linux子系统,会话和会话隔离
第二部分:WinDBG精要(1.5 小时)
要点:WinDBG的命令类型,常用命令,命令语法,调试符号,符号文件的种类,符号服务器,定制调试事件的方法和重要的调试命令,软件断点、硬件断点,复杂的断点命令,x86寄存器和反汇编技巧
第三部分:内核调试引擎(1小时)
要点:两种软件哲学,内核调试引擎(结构,重要的函数全局变量,工作原理),五种连接方式,启用方法,PCR,双机用户态调试(Debug WinLogon and CSRSS)
第四部分:调试启动过程 (1.5小时)
要点:现场跟踪Windows系统的启动过程,解析其中的重要步骤和关键细节:内核初始化,CPU初始化,执行体的阶段0和阶段1初始化,SMSS,CSRSS和WinLogon,UserInit以及Shell。
第五部分:内存管理器 (1.5小时)
要点:内存管理的多级架构,内存管理器,大内存页及其使用,6大工作线程,内核池,分页内核和非分页内核池,PFN数据库,虚拟地址空间的管理(VAD),Verifier,实例分析
【DAY 2】
第六部分:应用程序崩溃和用户态转储(1.5小时)
要点:异常处理,SEH,两轮异常分发,异常处理器,未处理异常,JIT调试和应用程序崩溃的完整过程,转储的基本知识,如何使用ADPLUS自动产生用户态转储,以及分析用户态转储的常用命令和技巧,真实案例分析
第七部分:栈调试 (1.5小时)
要点:栈的创建,栈的自动增长机制,栈帧的组织方法,栈溢出攻击,GS机制,通过Windows 7系统的真实案例介绍基于Cookie的溢出检测机制,演示使用内核调试会话调试用户空间问题的技巧
第八部分:多线程调试(1.5小时)
要点:进程与线程,使用WinDBG来调试多线程程序,同时调试多个进程,控制线程执行状态、观察同步对象、临界区,线程死锁,死锁案例分析;CPU的LOCK前缀,互锁递增,同步机制比较,死循环
第九部分:堆调试(1.5小时)
要点:多层存储架构,内存管理器,内核态池,用户态堆,介绍调试内存有关的典型问题的方法和技巧,包括使用CRT堆和Win32堆的调试支持,分析内存泄漏、访问违例等,在探讨实践经验的同时会穿插重要的理论知识,包括Win32对和CRT堆的结构、内存管理常识、堆布局等,真实案例分析
第十部分:使用SOS扩展调试.Net程序(1小时)
要点:使用WinDBG从操作系统层次来调试托管程序,了解托管模块的加载过程,托管程序的线程结构,及时编译(JIT)的工作过程和托管异常的工作原理;通过SOS扩展库来调试托管程序,包括加载SOS的方法、SOS的常用命令和如何观察托管堆上的对象等,案例分析
【DAY 3】
第十一部分:I/O子系统和内核态驱动 (1.5 小时)
要点:I/O子系统架构,I/O管理器,驱动程序类型,设备树,ACPI,理解ACPI脚本,PCI总线概要,PnP,I/O子系统的建立过程,设备栈,PDO,FDO,IRP,常用的调试命令;驱动验证器:验证原理,验证项目,启用方法,使用WinDBG分析验证失败,WHCK测试,实例分析
第十二部分:存储和文件系统(1 小时)
要点:存储子系统大局观,磁盘端口驱动,分区管理,卷,磁盘过滤驱动,三级设备栈,文件系统,文件系统的过滤驱动,Mini Filter,实际案例分析:因为文件过滤驱动而导致的系统死锁
第十三部分:系统崩溃和死锁(1.5 小时)
要点:系统崩溃概览,Windows蓝屏崩溃(BSOD)的过程,系统转储,转储文件的产生过程,转储失败的原因,分析系统转储的方法,自动分析,自动分析的局限,真实案例解析:双误导致的崩溃,挂死在DPC,回退到错误现场的方法,从栈上寻找线索,系统挂死,典型原因,解决方法,窗口子系统挂死,资源锁,!locks,IRQL,挂死在高IRQL,中断风暴
第十四部分:事件追踪和调优 (1.5小时)
要点:调优基础,采样和Instrumentation,ETW (Event Tracing for Windows) 机制的原理,WPT组件、工作原理,WPR 和 WPA,演示如何使用WindowsPerformance Toolkit (WPT) 来发现应用程序的热点和瓶颈,涵盖常用的调优工具,包括perfmon,任务管理器中的重要性能指标(Page Fault,Memory),xperf、xbootmgr、xperfview等,实例讨论:高 CPU 占用率,GPU 调优
第十五部分: 使用vTune调优(1.5小时)
要点:vTune背景,版本历史,关键组件,收集数据的方法,基本热点(Hotspot)分析,高级热点分析,符号文件和符号文件设置,自定义分析模板,观察线程切换细节(上下文切换和preempt),观察中断,手工设置Marker,案例分析
讲师介绍
张银奎,微软全球最有价值技术专家(MVP),同济大学电子与信息工程学院特邀讲师,前英特尔亚太研发有限公司软件架构师。《软件调试》、《格蠹汇编》的作者,新版《十万个为什么》电子分册撰稿人之一,《程序员》杂志调试之剑栏目作者。1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20年,在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》、《感受和思考调试器的威力》(CSDN SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》(以上三个讲座都是微软“深入研究Windows内部原理系列”的一部分)等。翻译(合译)作品有《现代x86汇编语言编程》、《21世纪机器人》、《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。
附录1:往届研习班部分照片
附录2:报名与收费
标准收费:5600元每人
包括:
§ 包含研习材料的U盘一个
§ 研习班讲义的电子版本和纸质版本
§ 研习班期间的午餐和茶点
优惠条款:
1)同一单位6人同时报名,可免其中一人费用
2)9月30日前报名可以享受8折优惠
报名或垂询
1)联系课程顾问:
a) Cindy Long,电话:13621638537,电子邮件:cindy.long@leshanting.cn
b) Lisa Zhang ,电话:13801874134,电子邮件:lisa.zhang@leshanting.cn
2)请扫描文末的二维码,关注“格友”公众号后,发送2017后便可以提交报名信息或者提问。
公司付款
收款单位:上海曜印网络科技有限公司
银行账号:1001122409003035262
开户行:中国工商银行上海分行静安新城支行
***********************************************************
正心诚意,格物致知,以人文情怀审视软件,以软件技术改变人生。
欢迎关注格友公众号
转载地址:http://kepwn.baihongyu.com/