本书讲述如何开发虚拟设备驱动程序(VXD),共分为三部分。第一部分主要讲述VXD开发所需的基础知识。第二部分讲述如何使用软件VTOOLSD进行VXD的开发,包括对程序的调试方法和VTOOLSD类库的介绍,同时讲述一些简单实例的开发。第三部分主要讲述高级实例开发。\r\n\r\n 本书适合于熟悉Windows 9x操作系统,希望掌握开发VXD技术的读者学习使用。\r\n
\r\n
第1章 Intel CPU编程结构 \r\n\r\n 1. 1 386的体系结构 \r\n\r\n 1. 1. 1 总线接口部件 \r\n\r\n 1. 1. 2 指令预取部件 \r\n\r\n 1. 1. 3 指令译码部件 \r\n\r\n 1. 1. 4 执行部件 \r\n\r\n 1. 1. 5 分段部件 \r\n\r\n 1. 1. 6 分页部件 \r\n\r\n 1. 2 386的寄存器结构 \r\n\r\n 1. 2. 1 通用寄存器 \r\n\r\n 1. 2. 2 段寄存器 \r\n\r\n 1. 2. 3 系统地址寄存器 \r\n\r\n 1. 2. 4 控制寄存器 \r\n\r\n 1. 2. 5 调试和测试寄存器 \r\n\r\n 第2章 Intel CFU工作模式 \r\n\r\n 2. 1 实地址模式 \r\n\r\n 2. 2 保护模式 \r\n\r\n 2. 2. 1 存储器管理 \r\n\r\n 2. 2. 2 分段管理 \r\n\r\n 2. 2. 3 分页管理 \r\n\r\n 2. 2. 4 保护机制 \r\n\r\n 2. 2. 5 任务管理 \r\n\r\n 2. 3 虚拟86模式 \r\n\r\n 第3章 Windows9x操作系统内核结构 \r\n\r\n 3. 1 虚拟机的含义 \r\n\r\n 3. 1. 1 对内存的访问 \r\n\r\n 3. 1. 2 对中断或异常的处理 \r\n\r\n 3. 2 VXD与操作系统内核 \r\n\r\n 3. 3 Windows 98系统内存结构 \r\n\r\n 3. 3. 1 MS-DOS地址空间 \r\n\r\n 3. 3. 2 Win32程序私有地址空间 \r\n\r\n 3. 3. 3 共享地址空间 \r\n\r\n 3. 3. 4 系统地址空间 \r\n\r\n 第4章 虚拟设备驱动程序基础知识 \r\n\r\n 4. 1 VXD的文件结构 \r\n\r\n 4. 2 VXD的数据结构 \r\n\r\n 4. 3 VXD的消息处理 \r\n\r\n 4. 4 VXD的运行机制 \r\n\r\n 第5章 开发工具剖析 \r\n\r\n 5. 1 系统环境的设置 \r\n\r\n 5. 2 VTOOLSD的工具程序 \r\n\r\n 5. 3 实例开发 \r\n\r\n 第6章 VTOOLSD类库剖析 \r\n\r\n 6. 1 框架类 \r\n\r\n 6. 1. 1 Vdevice类 \r\n\r\n 6. 1. 2 VVirtualMachine类 \r\n\r\n 6. 1. 3 Vthread类 \r\n\r\n 6. 2 事件处理类 \r\n\r\n 6. 2. 1 DMA类 \r\n\r\n 6. 2. 2 I/O类 \r\n\r\n 6. 2. 3 中断类 \r\n\r\n 6. 2. 4 异常类 \r\n\r\n 6. 2. 5 热键类 \r\n\r\n 6. 2. 6 VAppyTimeEvent类 \r\n\r\n 6. 2. 7 时间延迟类 \r\n\r\n 第7章 VXD的调试技术 \r\n\r\n 7. 1 SOFTICE的安装与设置 \r\n\r\n 7. 2 SOFTICE调试技术 \r\n\r\n 7. 3 DBGVIEW调试工具 \r\n\r\n 第8章 CIH病毒剖析 \r\n\r\n 第9章 开发文件系统驱动程序 \r\n\r\n 附录 SOFTICE命令详解 \r\n\r\n 1. 执行控制类 \r\n\r\n 2. 断点设置和监控类 \r\n\r\n 3. 断点处理类 \r\n\r\n 4. 符号和源代码操作命令类 \r\n\r\n 5. 系统信息类 \r\n\r\n 6. 显示和改变内存信息类 \r\n\r\n 7. I/O类 \r\n\r\n 8. 模式控制类 \r\n\r\n 9. 用户自定义类 \r\n\r\n 10. 窗口控制类 \r\n\r\n 11. 杂项类 \r\n
\r\n
CIH病毒曾使很多人记忆深刻, 就其本质来说, 它利用了虚拟设备驱动程序(VXD)的技术. 本书的目的就是带领读者进入虚拟驱动程序的世界, 让读者一睹其奥妙和风采.
现在市面上关于Windows编程的书多如牛毛, 但是关于设备驱动程序开发的书却少的可怜. 驱动程序通常工作在与操作系统同级的核心级, 因而具有同操作系统同级的权限, 可以实现许多一般应用程序无法完成的功能, 比如实现对整个4GB虚拟地址空间的访问.
本书的读者
本书假定读者熟悉Windows9x操作系统和具备一定的C/C++开发知识, 还要具备一定的计算机结构知识和汇编知识. 如果读者希望能在最短的时间里学会控制物理硬件或者扩展操作系统的功能, 那么本书将非常适合您学习使用. 如果读者已经会开发驱动程序但还不是很精通, 那么本书将有很好的参考价值.
工作平台
本书所讲述的所有内容均是基于运行在IntelCPU上的Windows 9x操作系统, 所有程序均在Windows 98操作系统上调试通过.
本书的内容
本书分为三大部分, 为了便于学习和掌握, 各部分都循序渐进展开讲解.
第一部分主要讲述基础知识. 介始学习开发虚拟驱动程序必须了解和掌握的Windows 9x的内核和结构以及虚拟设备驱动程序的基础知识, 同时对IntelCPU的编程结构也进行了介绍, 如果只想快速直接地开发VXD, 可以先阅读第二部分.
第二部分主要讲述如何使用软件VTOOLSD进行虚拟设备驱动程序的开发, 包括对程序的调试方法和VTOOLSD类库的介绍. 读者学习这部分内容, 就可以进行一些简单的开发.
第三部分主要讲述实例开发, 本部分将引导读者进行综合开发, 详细具体的讲述一些实例和高级应用.
开发工具
本书使用软件VTOOLSD进行开发, 该软件是由VIREO公司开发的, 是用C和C++进行开发虚拟驱动程序的强大工具, 程序的调试采用由NUMEGA公司开发的软件SOFTICE和可以显示调试输出的DBGVIEW程序. 虽然SOFTICE也显示调试输出, 但是不如DBGVIEW使用方便. VTOOLSD和SOFTICE均可以在中国超级工具库(http://202. 102. 251. 27/home/pctools/index. htm)下载, 而DBGIEW 程序可以在http://www. syinternals. com下载.
编著者