l w2k_mem #0x40 0x80400000 显示从线性地址 0x80400000 开始的 64 个字节 , #0x40 表示要显示的块大小为 64
l w2k_memd #0x40 0x80400000 在前一命令的基础上 , 按照 32 位的 DWORD Chunk 来显示 , 这就是d 选项的作用 。在同一个命令中 , 首先出现的选项将会一直有效 , 除非使用相应的 - 选项或使用其互斥选项 。如d 的互斥选项为:w 、q。
l w2k_memwz #0x40 0x10000d –z 0x200000 包含两个数据请求 。首先 , 线性地址范围: 0x10000----0x1003F 中的内容将按照 16 位 WORD 格式来显示 , 随后的 0x20000---0x2003F 按照 32 位 DWORD 格式显示(见 示列 4-3 ) 。第一个请求中还包含一个z 选项 , 该选项将使“ Address ”列的数字从 0 开 。在第二个请求中 , 通过 -z 选项 , 禁用了从 0 开始的显示模型 。
l w2k_memrd #4096 0xC0300000 以 DWORD 格式显示起始于 0xC0300000 的系统页目录 。r 选项表示在“ Address ”列中以物理内存地址代替线性地址 。
现在 , 你应该基本上明白命令行格式是如何工作的了 。在下一小节中 , 将详细讨论一些比较特别的选项和特性 。它们中的大多数会改变对出现在它们之前的地址的解释方式 。在默认情况下 , 指定的地址是一个线性基址 , 内存 Dump 将从那里开始 。选项:t 、f 、u 、k 、h 、a 、s 和p 将以多种方式改变这种默认解释方式 。
示列 4-2. 数据请求示列
示列 4-3. 以指定格式显示数据
与 TEB 相关的地址
进程中的每个线程都有其自己的线程环境块( Thread Environment Block , TEB ) , 系统在此 TEB 中保存频繁使用的线程相关的数据 。在用户模式下 , 当前线程的 TEB 位于独立的 4KB 段 , 可通过 CPU 的 FS 寄存器来访问该段 。而在内核模式下 , FS 却指向不同的段 , 下面将解释之 。一个进程的所有 TEB 都以堆栈的方式 , 存放在从 0x7FFDE000 开始的线性内存中 , 每 4KB 为一个完整的 TEB , 不过该内存区域是向下扩展的 。这意味着 , 第二个线程的 TEB 的地址将是 0x7FFDC000 , 这和堆栈类似 。在第七章 , 我们会详细讨论 TEB 的内容和进程环境块( Process Environment Block , PEB )的地址 0x7FFDF000 (参见 列表 7-18 和 7-19 ) 。这里知道 TEB 的存在 , 而且知道其地址由 FS 寄存器给出就足够了 。
如果在一个地址之前出现了t 选项 , w2k_mem.exe 将自动把 FS 段的基地址加到该地址上 , 示列 4-4 展示了 w2k_memdt #0x38 0 命令执行后的输出 。这一次我省略了 w2k_mem.exe 输出的标题和状态信息 。
示列 4-4. 显示第一个线程环境块( TEB )
与 FS 相关的地址
我前面已经提到过 , 在用户和内核模式下 , FS 将指向不同的段 。t 选项将选择用户模式下 FS 所指向的地址 , f 选项则使用在内核模式下 FS 指向的地址 。当然 , Win32 应用程序没有办法获取该地址 , 因此 , 需要再次请求 Spy 设备 。w2k_mem.xe 调用 IOCTL 函数 SPY_IO_CPU_INFO , 来读去 CPU 的状态信息 , 这包括所有段寄存器在内核模式下的值 。从此开始 , 所有的事情和t 选项相同 。
内核模式的 FS 指向另一个线程相关的结构 , Windows 2000 内核回经常使用该结构 , 其名称为:内核的处理器控制区域( Kernel"s Processor Control Region , KPCR ) 。该结构在讨论 IOCTL 函数 SPY_IO_OS_INFO 时已经提及过 , 在第七章我们还会再次提到它(见 列表 7-16 ) 。再次强调 , 现在你只需要知道该结构存在于线性地址 0xFFDFF000 处即可 , 使用f 选项就可访问它 。在 示列 4-5 中 , 我使用命令: w2k_memdf #0x54 0 来演示 , 在实际情况下 , 使用f 选项的结果 。
示列 4-5. 显示内核的处理器控制区域( KPCR )
FS:[Base] 寻址方式
推荐阅读
- 怀旧服暗月马戏团时间
- 如何在Windows2000中动态禁用/启用Ctrl-Alt-Delete
- 部分未公开的Windows 2000核心功能调用
- Windows 2000服务器配置攻略
- 关掉Windows 2000不必要的服务
- Windows 2000的“隐形”武器
- Windows 2000 快速查找文件
- 获得Windows 2000的帮助信息
- Windows 2000 用户和计算机帐户管理
- 三国演义中文丑被谁杀的