Undocumented Windows 2000 Secrets 中文版
### Undocumented Windows 2000 Secrets 中文版 #### 知识点概览 **本书主要内容涵盖了Windows NT架构下的内部细节与高级调试技术。** 以下是对书中的几个核心章节进行的详细解读: ##### 第一部分:Windows 2000对调试技术的支持 这一部分主要介绍了如何设置调试环境,并提供了多种调试工具和技术。 - **1.1 建立一个调试环境** - **1.1.1 准备一次崩溃转储(Crash Dump)** - **定义**: 在Windows系统中,崩溃转储是一种保存系统状态的方法,以便在系统崩溃后进行分析。 - **步骤**: - 配置注册表以启用崩溃转储功能。 - 设置转储文件的位置和大小。 - 启动系统并等待触发崩溃事件。 - 分析转储文件以确定崩溃原因。 - **1.1.2 让系统崩溃** - **方法**: - 使用特定的程序或命令行工具来故意触发系统的异常行为。 - 观察系统响应并记录相关信息。 - **1.1.3 安装符号文件** - **解释**: 符号文件包含了程序的符号信息,这对于调试非常重要。 - **过程**: - 下载相应的符号文件包。 - 配置调试器以指向这些符号文件。 - **1.1.4 配置内核调试器** - **介绍**: 内核调试器是用于调试操作系统内核的强大工具。 - **配置步骤**: - 选择合适的调试器(如Windbg)。 - 设置调试器连接到目标机器的方式。 - 调整调试器的配置选项以适应特定需求。 - **1.1.5 内核调试器的命令** - **常见命令**: - `.reload`: 重新加载符号文件。 - `!analyze -v`: 分析转储文件以获取详细的崩溃信息。 - `.symfix`: 修复符号文件路径。 - **1.1.6 10大调试命令** - **列举**: 包括`.breakp` (设置断点)、`.cxr` (继续执行直到返回)等。 - **1.1.7 关闭调试器** - **操作**: 使用`.quit`命令退出调试会话。 - **1.2 更多的调试工具** - **1.2.1 MFVDASM**: 多格式反编译器,帮助解析和理解机器码。 - **1.2.2 PEView**: 查看PE和COFF文件的工具。 - **1.2.3 Windows 2000调试接口** - **概述**: 包括了多个动态链接库(DLLs),如`psapi.dll`、`imagehlp.dll`和`dbghelp.dll`。 - **1.2.4 psapi.dll、imagehlp.dll和dbghelp.dll** - **用途**: - `psapi.dll`: 提供了访问进程和线程的信息。 - `imagehlp.dll`: 用于解析PE文件格式。 - `dbghelp.dll`: 提供了调试符号的支持。 - **1.2.5 光盘中的示例代码** - **示例**: 包含了多个用于演示调试技术和工具的代码示例。 - **1.2.6 枚举系统模块和驱动** - **技术**: 使用API函数如`EnumProcessModules`来获取系统中所有运行模块的信息。 - **1.2.7 枚举活动进程** - **方法**: 利用`CreateToolhelp32Snapshot`函数来获取系统中当前活动的进程列表。 - **1.2.8 枚举进程模块** - **过程**: 对于每个进程,使用`Module32First`和`Module32Next`函数来遍历其加载的模块。 - **1.2.9 调整进程特权** - **操作**: 通过调用`AdjustTokenPrivileges`函数来增加或减少进程的安全权限。 - **1.2.10 枚举符号** - **工具**: 使用调试器提供的命令,如`lm`来查看已加载的模块及其符号。 - **1.3 Windows 2000符号浏览器** - **1.3.1 深入微软符号文件** - **解释**: 符号文件包含程序的源代码位置和其他元数据。 - **1.3.2 符号的编码方式** - **格式**: 介绍了符号文件中数据是如何编码的。 - **1.3.2 .dbg文件的内部结构** - **内容**: 描述了.dbg文件的具体结构和内容。 - **1.3.3 CodeView子节** - **定义**: 解释了CodeView子节的含义及其作用。 - **1.3.4 CodeView符号** - **种类**: 列出了各种CodeView符号及其用途。 - **1.3.5 .pdb文件的内部结构** - **细节**: 分析了.pdb文件的结构以及如何从中提取有用信息。 ##### 第二部分:The Windows 2000 Native API 本章深入探讨了Windows 2000的核心API及其内部工作原理。 - **2.1 NT*() 和 Zw*() 函数集** - **未文档化的级别** - **系统服务分配器(SystemServiceDispatcher)** - **服务描述符表(The ServiceDescriptorTables)** - **INT2eh系统服务处理例程** - **2.2 Win32内核模式接口** - **Win32K分派ID(Win32KDispatchIDs)** - **2.3 Windows 2000运行时库** - **2.3.1 C运行时库** - **2.3.2 扩展的运行时函数** - **2.3.3 浮点模拟器(The Floating-Point Emulator)** - **2.3.4 其它的API函数** - **2.4 经常使用的数据类型** - **2.4.1 整型** - **2.4.2 字符串** - **2.4.3 结构体** - **2.5 Native API的接口** - **将NTDLL.DLL导入库添加到工程中** ##### 第三部分:编写内核模式驱动程序 这一章节提供了创建内核模式驱动程序的基本步骤和技术指导。 - **3.1 创建一个驱动程序的骨架** - **3.1.1 Windows 2000 DDK(Device Driver Kit)** - **3.1.2 可定制的驱动程序向导** - **3.1.3 运行驱动向导** - **3.1.4 深入驱动程序的骨架** - **3.1.5 设备I/O控制** - **3.1.6 Windows 2000的KillerDevice** - **3.2 加载/卸载驱动程序** - **3.2.1 服务控制管理器** - **3.2.2 高层的驱动程序管理函数** - **3.2.3 枚举服务和驱动** ##### 第四部分:探索Windows 2000的内存管理机制 这部分讲解了Windows 2000内存管理的底层实现和技术细节。 - **4.1 Intel i386 内存管理机制** - **4.1.1 基本的内存布局** - **4.1.2 内存分段和请求式分页** - **4.1.3 数据结构** - **4.1.4 宏和常量** - **4.2 MemorySpyDevice示例** - **4.2.1 Windows 2000的内存分段** - **4.2.2 设备I/O控制Dispatcher(Device I/O Control Dispatcher)** - **4.2.3 IOCTL函数SPY_IO_VERSION_INFO** - **4.2.4 IOCTL函数SPY_IO_OS_INFO** - **4.2.5 IOCTL函数SPY_IO_SEGMENT** - **4.2.6 IOCTL函数SPY_IO_INTERRUPT** - **4.2.7 IOCTL函数SPY_IO_PHYSICAL** - **4.2.8 IOCTL函数SPY_IO_CPU_INFO** - **4.2.9 IOCTL函数SPY_IO_PDE_ARRAY** - **4.2.10 IOCTL函数SPY_IO_PAGE_ENTRY** 以上内容覆盖了书籍的主要知识点,有助于深入了解Windows 2000的操作系统内部结构、调试技术和驱动程序开发等方面的知识。
- 粉丝: 11
- 资源: 18
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助