Windows系统基础 |
- 概述Windows操作系统的架构
- 系统组件
- HAL
- 内核
- 执行体
- Native进程
- 子系统
- 重要的系统机制
- 主要数据结构
- 虚拟内存、进程、线程、操作系统的用户和内核空间等重要概念
|
WinDBG精要 |
- 系统介绍 WinDBG的发展历史、架构、组件构造
- 关键使用方法,包括命令类型、表达式
- 常用的调试命令
- 涵盖符号设置
- 用户态调试和内核态调试
- 远程调试
- 实验1: WinDBG基础 ( 15 min )
|
应用程序崩溃和转储 |
- Windows分发异常的详细过程
- 应用程序崩溃的内幕和调试方法(JIT调试)
- 转储的基本知识
- 如何使用ADPLUS自动产生用户态转储
- 分析用户态转储的常用命令和技巧
- 实验2: 异常处理和JIT调试 ( 15 min )
|
栈调试 |
- 详细介绍栈的自动增长机制
- 栈帧的组织方法
- 并通过实例演示栈溢出攻击的原理,
- 通过Windows 7系统的真实案例介绍基于Cookie的溢出检测机制
|
多线程调试 |
- 如何使用WinDBG来调试多线程程序和同时调试多个进程
- 多核和多处理器系统中的各种同步机制
- 比较不同同步机制的优劣
|
堆调试 |
- 调试内存有关的典型问题的方法和技巧
- 使用CRT堆和Win32堆的调试支持
- 分析内存泄漏
- 访问违例
- 栈溢出
- 在探讨实践经验的同时会穿插重要的理论知识
- Win32对和CRT堆的结构
- 内存管理常识和用户态调试器的基本工作原理
- 实验3: 使用UMDH来寻找内存泄漏 ( 15 min
)
|
可调试性 |
- Windows系统的诊断设施(WDI)的工作原理
- 探讨如何在软件工程实践中提高软件的可调试性
|
使用WPT调优 |
- 介绍ETW (Event Tracing for Windows) 机制的原理
- ETW在Windows系统中的重要地位
- 演示如何使用Windows Performance Toolkit (WPT)
来发现应用程序的热点和瓶颈,涵盖常用的有关工具,包括xperf, xbootmgr,
xperfview等
|
高级调试技巧 |
- 定制调试事件的处理方式以便得到更早的调试时机
- 通过特殊的调试会话调试自动启动的进程和关键的系统进程
- 程序指针飞跃
- 在调试器中调用函数和修改代码
- 设置复杂的条件断点
|