windows内核编程-配置篇

初步接触了一下windows内核编程,发现这真是一个博大精深的领域,和windows应用开发差别很大。这里,讲讲windows内核编程的准备工作:如何配置内核开发环境。

我是个小嫩,按照《寒江独钓》那本专门讲windows内核编程的神书来配置,中间也出现了一些问题,下面,我把步骤贴出来,一起和大家学习学习。


1. 开发内核程序 + 编译内核程序的环境配置:win7 + WDK

首先,到微软的官网下驱动开发包WDK,我下载的是WDK_7600,适用于xp、win7、windows server 2003等系统。


下载完后,解压,直接安装即可。

安装时,把所有的组件都勾选上,选择完全安装。安装路径最好在某个盘的根目录下,安装路径名最好全部使用英文,如“D:\WDK”。

安装完成后,会在"开始"菜单里出现WDK的编译环境选项,如下图:


"Checked"编译相当于vs2010中的Debug版,“Free”编译相当于vs2010中的Release版。

我打开了一个支持XP系统的内核程序编译环境,所谓支持XP系统,是指编译出的内核程序运行在XP系统里,编译窗口如下:


要编译内核程序,只要在编译窗口中进入该内核程序的工程根目录下,直接输入"build"即可。如上图,我"cd D:\windows内核编程学习\keyboardfilter",然后"build",WDK就开始编译。

编译完后,WDK会在上述内核程序的工程目录中生成一个.sys文件:


.sys文件就是传说中的内核模块文件,也可叫做系统文件、系统服务什么的。不同于应用程序中的exe文件,双击sys文件是无法运行它的,内核模块只能被windows系统加载,在加载前,还必须安装该内核模块。下面,讲解如何运行一个内核程序。


2. 运行内核程序的环境配置:VM + windows XP

打开VM虚拟机,进入XP系统。可以安装系统服务的软件很多,我根据《寒江独钓》那本书,下了一个叫“srvinstw”的软件,该软件运行如下:


把上述编译好的“KeyboardFilter.sys”文件拷到XP虚拟机中,开始用“srvinstw”来安装该内核模块。



注意:这里的"服务名称"不是你编译好的sys文件名,而是你要安装成的系统服务的名字,自己随便取,但一定要记好。我取名为”kb_test“。


这里要求输入的就是你编译后生成的sys文件名,不要用”浏览“,因为那只能找到exe文件,找不到sys文件,自己手动输入。注意:要输入的包括sys文件完整路径名 + sys文件名。



注意:该项可以不填,系统将使用默认的。


注意:推荐选择“手动”,安装后,我们可以通过命令自行加载、卸载该内核模块。

安装完成后,我们便可以手动加载该内核模块,运行该内核程序了。打开命令行,确保你是Administrator用户权限,输入net start + 服务名称,这里的”服务名称“就是上面你在安装时自己取的服务名,注意,不是编译后生成的sys文件名。我在安装时,取的服务名为"kb_test",所以,这里输入"net start kb_test",如下图:


"服务已经启动成功",表明该内核程序加载成功,正常运行了。

若想卸载该内核模块,停止该内核程序的运行,在命令行中输入net stop + 服务名称。我输入”net stop kb_test“,如下:



以上,就是从编译一个内核程序开始,到成功运行该内核程序的一个详细配置过程。有点复杂,但能学到很多东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值