没有合适的资源?快使用搜索试试~ 我知道了~
首页驱动开发入门:Win7 SP1 x64 驱动开发环境搭建
资源详情
资源评论
资源推荐
{PAGE \* MERGEFORMAT}
驱动开发入门:Win7 SP1 x64 驱动开发环境搭建
By EXP 2017-10-04
1. 概述
1.1 前言
适读人群:具备良好的 C/C++开发经验,一定的逆向工程基础。
本文仅讲述在 Win7 SP1 x64 系统中,搭建基于 WDK7600 的驱动开发环境,不会解析任何驱
动开发的代码。
之所以撰写本文,是因为网上充斥着大量已经过时的基于 WinXP(x86)-DDK 的驱动开发教
程、或针对 Win(x64)-WDK 但不成体系的驱动开发教程,导致新同学在搭建开发环境时遇到的各
种问题难以被解决。
所谓工欲善其事、必先利其器,特此记录并整理了在 64 位系统中,从搭建驱动环境到安装
调试驱动程序的每个步骤、可能遇到的问题以及解决方案,以供其他同学做入门参考,降低学习
成本。
另外驱动程序是不存在兼容一说的(即 x86 的驱动只能运行在 x86 系统、x64 的驱动只能运
行在 x64 的系统),但是 x86 已经被逐步淘汰了,因此本文只会针对 x64 进行说明(其实 x86 也
是大同小异)。
1.2 名词解析
VxD Virtual Device Driver 虚拟设备驱动程序
DDK Device Development Kit
设备驱动程序开发工具包,广泛应用于 XP-x86
年代,已淘汰
WDM Windows Driver Model Windows 驱动模型
WDK Windows Driver Kit Windows 驱动开发工具
WDF Windows Driver Foundation Windows 驱动开发框架
MSDN Microsoft Developer Network
微软以 Visual Studio 和 Windows 平台为核
心整合的开发虚拟社区,提供面向软件开发者
的信息服务(包括技术文档、在线电子教程、
产品下载、Blog、BBS、MSDN WebCast 等)
KMDF Kernel-Mode DriverFramework 内核模式驱动程序
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
{PAGE \* MERGEFORMAT}
UMDF User-Mode DriverFramework 用户模式驱动程序
chk Checked(debug) 调试版本标识
fre Free(retail,或 release) 发布版本标识
1.3 WDK
简史
——部分内容摘于博文:
http://lib.csdn.net/article/dotnet/41373
早期的 Windows 95/98 的设备驱动是 VxD,其中 x 表示某一类设备。从 Windows 2000 开始,
开发驱动程序必以 WDM 为基础的,但如果使用 DDK 来开发 WDM,其开发难度之大,根本不
能奢望像用户模式应用程序开发那样容易。
为改善这种局面,从 Vista 开始,微软推出了新的驱动程序开发环境 WDF。WDF 是微软提
出的下一代全新的驱动程序模型,它是在 WDM 的基础上发展而来的,支持面向对象、事件驱动
的驱动程序开发,提供了比 WDM 更高层次抽象的高度灵活、可扩展、可诊断的驱动程序框架。
WDF 框架管理了大多数与操作系统相关的交互,实现了公共的驱动程序功能(如电源管理、PnP
支持),隔离了设备驱动程序与操作系统内核,降低了驱动程序对内核的影响。
在众多 WDK 版本之中,WDK7600 算是承上启下的一个版本。因为在此之前的驱动开发主
要都是基于 XP 的 DDK,难度过大且已过时。
微软在 Win7/Vista 时期对 DDK 做了集成优化衍生出 WDK,且适用于之后的 Win8/Win10。
但是微软在 WDK7600 以后就不再提供独立的内核驱动开发包了,并以 Win8/Win10+WDK10
为主提供了集成度更高的 WDF(使得 Visual Studio 可以集开发、编译、安装、部署和调试于一
身),但是环境配置差异变化较大,且由于本人不喜欢 Win8/Win10 系统,有兴趣的同学可以自
行研究,本文仅以 WDK7600 为核心搭建驱动环境。
2. 操作系统与预装组件
① 系统版本: Win7 SP1 x64 (必须升级到 SP1 版本)
② C/C++ x64 .NET 库:需安装四个版本 [v2.0.50727] [v3.0] [v3.5] [v4.0.30319]
③ Microsoft Office 2007:安装 Visual Studio IDE(VS2008 / VS2010)前置组件
3.
相关工具安装
3.1
安装清单
标红的工具为必装,其他工具可根据下文所说明的开发环境选择性安装。
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
{PAGE \* MERGEFORMAT}
表 1 安装清单(安装顺序建议与清单保持一致)
工具 版本 用途 备注 下载
Visual Studio
2008 x64
C/C++程序开发 IDE
用于驱动程序编码
需先安装前置程序/库:
.NET x64 v2.0.50727
.NET x64 v3.0
.NET x64 v3.5
.NET x64 v4.0.30319
Microsoft Office 2007
官方地址
CSDN
网盘
2010 x64
官方地址
CSDN
网盘
Visual Assist X 10.8.2007 VS IDE 辅助插件
可选安装,提供编码提
示、补全等辅助功能
官方地址
CSDN
网盘
WDK 7600
微软提供的
Win 驱动开发工具包
提供驱动开发的 API(头
文件)、库文件等
官方地址
CSDN
网盘
DDKWizard
1.3.0a
VS2008
驱动模板生成插件
可在 VS2008 中直接创
建驱动程序开发模板
官方地址
CSDN
网盘
ddkbuild.bat
ddkbuild.cmd
VS2008
驱动程序生成脚本
需配合 WDK 与
DDKWizard 使用
EasySYS 0.3.2.7
VS2010
驱动模板生成工具
生成可被 VS2010 导入
的驱动程序开发模板
官方地址
CSDN
网盘
64Signer 1.2
内核驱动程序
数字签名工具
Win7 之后的 64 位系统
的内核驱动程序必须具
备数字签名,此工具可
伪造测试用的数字签名
官方地址
CSDN
网盘
DriverMonitor 3.2.0 内核驱动程序调试器
XP x86 用于安装、启动
内核程序的调试工具,
Win7 x64 可能不兼容
官方地址
CSDN
网盘
InstDrv 1.3.0 内核驱动程序调试器
Win7 用于安装、启动内
核程序的调试工具
官方地址
CSDN
网盘
DebugView 4.81 内核驱动消息捕获器
配合 DriverMonitor 或
InstDrv 使用,用于调试
内核程序断点打印消息
官方地址
CSDN
网盘
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
{PAGE \* MERGEFORMAT}
VMWare 11.1.2 虚拟机
用于搭建隔离环境调试
驱动程序
官方地址
CSDN
网盘
WinDbg
Windows 平台下的用户
态和内核态调试工具
用于配合虚拟机双机调
试驱动程序
官方地址
CSDN
网盘
3.2 WDK 的安装与配置
下载 WDK 的安装镜像 GRMWDK_EN_7600_1.ISO,安装到任意目录即可。
本文的安装目录为:E:\04_work\re\WDK
环境变量配置:
① 右击【计算机】-->【属性】-->【高级系统设置】-->【高级选项卡】-->【环境变量】
② 在【系统变量】中新建四个变量:
W7BASE E:\04_work\re\WDK Win7 用, Win7 必须配置
WLHBASE E:\04_work\re\WDK Win Vista\2008 用,Win7 必须配置
WNETBASE E:\04_work\re\WDK Win 2003 用,Win7 可选配置
WXPBASE E:\04_work\re\WDK Win XP 用,Win7 可选配置
注:建议添加所有环境变量
4. 驱动开发环境配置
VS2008 与 VS2010 两种开发环境
任选其一即可
。
两种开发环境的差异比较如下:
VS2008 + DDKWizard VS2010 + EasySYS
自动生成 WDK 开发模板 支持(IDE 内生成) 支持(IDE 外生成,需导入)
需修改的开发配置项
WDK 环境依赖
WDK 配置参数(source 文件)
编译平台位数
编译命令参数
WDK 环境依赖
WDK 配置参数(source 文件)
支持编译位数
x86 (默认)
x64 (需修改平台和命令参数)
x86 (需修改平台)
x64 (默认)
驱动程序签名方式
手动关闭系统签名校验
手动对驱动签名
手动关闭系统签名校验
手动对驱动签名
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
{PAGE \* MERGEFORMAT}
4.1 环境 1:VS2008 + DDKWizard
4.1.1 VS2008 的安装与配置
① 安装 VS2008(任意位置即可)
② 打开 VS2008 ,设置 WDK 环境依赖: 【工具】-->【选项】-->【项目和解决方案】-->
【VC++目录】 --> 右侧【平台】选择【x64】 ,按下表添加 WDK 目录(需置顶并确保顺序):
x64 平台(即 64 位编译环境) Win32 平台(不必配置,仅参考)
可执行文件
$(W7BASE)\bin\x86\amd64
$(W7BASE)\bin\x86
$(W7BASE)\bin\x86
$(W7BASE)\bin\x86\x86
$(W7BASE)\tools\pfd\bin\bin\x86
包含文件
$(W7BASE)\inc\api
$(W7BASE)\inc\crt
$(W7BASE)\inc\ddk
$(W7BASE)\inc\wdf
$(W7BASE)\inc\wdf\kmdf\1.9
$(W7BASE)\inc
$(W7BASE)\inc\api
$(W7BASE)\inc\crt
$(W7BASE)\inc\ddk
$(W7BASE)\inc\wdf
$(W7BASE)\inc\wdf\kmdf\1.9
$(W7BASE)\inc
库文件 $(W7BASE)\lib\win7\amd64
$(W7BASE)\lib
$(W7BASE)\lib\wdf\kmdf\i386\1.9
$(W7BASE)\lib\wxp\i386
源文件 $(W7BASE)\src $(W7BASE)\src
4.1.2 DDKWizard 的安装与配置
① 安装 DDKWizard(任意位置即可)
② 在 WDK 根目录下新建文件夹 script,把 ddkbuild.bat 和 ddkbuild.cmd 复制进去。
③ 修改【系统变量】中【Path】变量值,末尾添加 ;%W7BASE%\script;
④ 安装成功后,在 VS2008 中新建项目时会增加一个 DDK Project 的模板,利用该模板创
建 WDK 项目,会自动调用 ddkbuild.cmd 脚本编译驱动程序。
4.1.3 WDK 项目创建、配置与发布
① 打开 VS2008 , 【文件】-->【新建】-->【项目】-->【DDK Project】 ,如图 1。
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
剩余29页未读,继续阅读
小優YoU
- 粉丝: 1915
- 资源: 227
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0