如何搭建Visual Studio的内核编程开发环境
最近正在看《寒江独钓——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
如何搭建Visual Studio的内核编程开发环境的更多相关文章
- [内核编程] visual studio 2010配置驱动开发环境
visual studio 2010 配置驱动开发环境 ** 工具/材料 VS2010.WDK开发包 ** 配置过程 以下将讲述VS2010驱动开发环境的配置过程,至于必要软件的安装过程这里不再赘述 ...
- Visual Studio 2017进行Python开发环境的搭建,使用VS2017进行python代码的编写。
Visual Studio 2017进行Python开发环境的搭建,使用VS2017进行python代码的编写. 前提:已经安装过VS2017且进行过配置. 第一部分: Python环境的搭建: 建议 ...
- Cocos开发中Visual Studio下libcurl库开发环境设置
我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件 ...
- Visual Studio下SQLite数据库开发环境设置
由于我们介绍的内容都是基于微软的Visual Studio下开发的Win32平台,所以下边我们介绍Visual Studio下SQLite数据库开发环境设置.具体而言我们有两种方式可以在Visual ...
- Visual Studio 2012下Box2D开发环境设置
Cocos2d-x 3.x默认情况下采用的物理引擎是Chipmunk,如果我们要使用Box2D引擎,需要进行一些设置和调整,而且不同的开发平台下这些设置也有所不同.由于本书在此之前介绍的都是基于微软的 ...
- visual studio 2010配置驱动开发环境
visual studio 2010 配置驱动开发环境 ** 工具/材料 VS2010.WDK开发包 ** 配置过程 以下将讲述VS2010驱动开发环境的配置过程,至于必要软件的安装过程这里不再赘述 ...
- Cocos发育Visual Studio下一个HttpClient开发环境设置
Cocos2d-x 3.x相关类集成到网络通信libNetwork图书馆project于.这其中包括:HttpClient分类. 我们需要在Visual Studio溶液中加入libNetwork图书 ...
- Windows 7 Visual Studio 2008配置OpenGL开发环境
Windows 7 Visual Studio 2008配置OpenGL开发环境 glut下载地址: http://www.opengl.org/resources/libraries/glut/gl ...
- Visual Studio Code配置 HTML 开发环境
Visual Studio Code配置 HTML 开发环境 https://v.qq.com/x/page/l0532svf47c.html?spm=a2h0k.11417342.searchres ...
随机推荐
- Delete website with command.
1.AppCmd.exe 2.http://www.windowsnetworking.com/articles-tutorials/windows-server-2008/Configuring-I ...
- JqueryMobile新手问题大全
Jquery mobile 新手问题总汇 34 2013-04-22 / 分类:JqueryMobile / 标签:JqueryMobile,Jqm 此文章将会持续更新,主要收录一些新手比较常见的问题 ...
- Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据
XQuery 是一个浏览/返回XML实例的标准语言. 它比老的只能简单处理节点的XPath表达式更丰富. 你可以同XPath一样使用.或是遍历所有节点,塑造XML实例的返回等. 作为一个查询语言, 你 ...
- iOS开发之第三方登录微博-- 史上最全最新第三方登录微博方式实现
相关资源地址: 本项目demo地址 : https://github.com/zhonggaorong/weiboSDKDemo 最新SDK下载: 最新微博SDK 官网注册地址:点击打开链接 最新 ...
- BZOJ 1626: [Usaco2007 Dec]Building Roads 修建道路( MST )
计算距离时平方爆了int结果就WA了一次...... ------------------------------------------------------------------------- ...
- js的初始化
在项目中遇到了类似于这样的js, myinit.js文件: var wyl_01 = { tip : function(msg){ alert('i am a tip,msg:'+msg); }, t ...
- jQuery的扩展
我们自己通过扩展jQuery来达到 “通过$.xx(paras)的形式来进行调用某个jQuery对象的xx(paras)方法”. 下面就是一个实例: (function(j){//这里的j是一个形参, ...
- 在myeclipse中修改svn帐户
把C:\Users\Administrator\AppData\Roaming\Subversion\auth\这个文件中所有文件删除 然后在myeclipse中同步会让你输入用户名和密码
- Android 屏幕尺寸知识
转自:http://www.zcool.com.cn/article/ZNjI3NDQ=.html 1.了解几个概念 (1)分辨率.分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏 ...
- 第2章 Python基础语法--Hello python
第2章 基础语法 2.1 基本介绍 2.1.1 Hello python 每个语言的开始都是从”HelloWorld”开始的,我们也不例外.打开已经安装好的Python编译环境,至于Python如何安 ...