最近正在看《寒江独钓——Windows内核安全编程》这本书,感觉这本书非常好,有兴趣的朋友可以买来看看,有关这本书的信息请参考:http://www.china-pub.com/195592
这本书里没有详细介绍如何搭建Visual Studio的内核编程开发环境,在这里我简单介绍一下,希望能让像我一样刚学习内核编程的朋友更方便地开发。
一、下载与安装WDK
《寒》说,以前说的DDK、IFS已成为历史,现在已经改为使用WDK了,具体下载地址可以这里注册并下载:http://connect.microsoft.com,目前的版本是6001.18002,大小只有577MB。
下载安装后,假设安装路径为“c:\winddk”,接下来要设计环境变量,添加:BASEDIR,值为:“c:\winddk\6001”。必须设置此环境变量,否则下面编译时会出问题。
二、Visual Studio的开发环境
笔者用的是Visual Studio 2005,所以就以此版本介绍,其他版本的类似。
首先新建项目,类型选择Visual C++->General中的“Makefile Project”,这里的项目保存路径不要包括空格、中文等字符,否则会造成后面编译时的出错。
下一步,在Debug Configuration Settings中设置如下:
Build command line: ddk_build chk wxp
Clean commands: ddk_clean chk wxp
Rebuild command line: ddk_build chk wxp /a
Output: first.sys
如图:
下一步,在Release Configuration Settings中与Debug的一样,只是把“chk”改为“fre”即可,如下图:
接下来设置工程属性,在All Configurations中,Configuration Properties->NMake->Include Search Path中添加路径:
C:\WinDDK\6000\inc\ddk;C:\WinDDK\6000\inc\api
接下来添加源代码文件,举个例子:
first.c
#include <ntddk.h> VOID DriverUnload(PDRIVER_OBJECT driver) NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) driver->DriverUnload = DriverUnload; |
现在可以发现在VS中可以使用VS开发环境带来的强大功能,如查看PDRIVER_OBJECT的定义、查看某变量的成员函数(Ctrl+J)等等。
接下来要为编译作准备,添加以下这些文件:
makefile
!IF 0 Copyright (C) Microsoft Corporation, 1999 - 2002 Module Name: makefile. Notes: DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source !ENDIF !INCLUDE $(NTMAKEENV)\makefile.def |
sources
TARGETNAME=first SOURCES=first.c |
ddk_build.bat
@echo on if "%4"=="/a" call ddk_clean %1 %2 pushd. @echo on |
ddk_clean.bat
if exist Debug rd /s /q Debug |
现在,按F7就可以编译连接了。
以上就是搭建VS的内核开发环境过程。
三、调试环境
在《寒》一书中,有详细的调试方法介绍,在这里就不说了。不过可以透露的是,使用到的工具是:VMware、WinDbg、srvinstw.exe等。
http://www.cnblogs.com/cxun/archive/2009/08/03/1537646.html