Programming 版 (精华区)

发信人: Sun (大灯泡), 信区: Programming
标  题: VxD世界——用VToolsD开发一个简单的VxD 
发信站: 哈工大紫丁香 (Tue Aug 31 12:37:32 1999), 转信

   
  孙喜明 

这一次,我们讲一下如何用VToolsD开发一个最简单的VxD,以及用SoftIce进行源
程序级的调试。

VToolsD的使用


在VtoolsD中,有一个最重要的VxD开发工具:QuickVxD。QuickVxD可以为我们自
动生成VxD源程序框架,而且QuickVxD提供了许多VxD的特性选项,例如可以选择
要生成的VxD是动态加载的或是静态加载的,要使用的编程语言是C还是C++等等


我们要利用QuickVxD自动生成的是一个可动态加载的、基于C语言的VxD框架。之
所以选用动态加载的VxD,是为了调试VxD的方便。每次修改代码,重新编译连接
之后,要使VxD重新生效,如果采用静态加载的VxD,那就不得不重新启动电脑,
而若采用了动态加载的VxD,那只须使用VToolsD带的另一个开发工具VxDLoad就
可以卸出或重新加载内存中的VxD。之所以采用C语言而不是C++,是因为其简洁
易懂。请按照如图1~图4进行选择。按下Generate Now按钮,我们就获得了动态加
载的、基于C语言的VxD的源程序。

如果您是按照上一篇文章中讲过的VToolsD的编译环境设置系统,那我们就可以编
译刚才生成的这个最简单的VxD了。在DOS提示符下输入指令:

nmake -f myfirst.mak

看一下当前目录下是否生成了myfirst.vxd,如果有,那我们下面准备对这个VxD进行
源程序级的调试。如果没有,那么很可能是您的编译环境没有正确配置,请找来上
一篇文章好好读读。

用VxDLoad加载myfirst.vxd(见图5)

按下Load按钮,会出现VxD load successfully消息框。


用SoftIce调试VxD


对于SoftIce选单作如下选择:

(1)File→Open Module选择我们刚才生成的myfirst.vxd。

(2)Module→Translate,如果Symbol Loader提示无法加载一些asm文件,那就跳
过所有的asm文件。

(3)Module→Load。

按下Ctrl+D,进入SoftIce运行环境中(如果您还没有按照上一篇文章中安装
SoftIce的话,那就无法再进行下面的测试)。输入如下指令:

:file 

myfirst.c

:file myfirst.c

这时,在SoftIce中,您将会看到myfirst.c的源程序。



图1选项页面之一



图2选项页面之二



图3选项页面之三



图4可以生成VxD源程序了



图5用VxD Load加载myfirst.vxd
     
     
--
〖小糊涂虫2000灌水机〗

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: sun@hope.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.215毫秒