WDK安装安装

  • 1.WDK下载
    • VS2019设置
    • EWDK使用
  • 注意事项
  • 错误解决方法
    • 系统错误1275
    • 系统错误557

1.WDK下载

微软已经不再使用connect.microsoft.com,新的下载地址:下载地址
打开以后显示的是最新版的SDK和WDK。
安装WDK必须安装对应的SDK,如果电脑上安装了VS2019,可以选择先安装SDK,再安装WDK.(自带windbg等程序)。然后使用VS2019作为编辑器和生成工具。
也可以下载包含生成工具的EWDK,这样的话可以通过控制条生成驱动文件。但是这个文件有16G那么大,下载速度较慢,如果电脑上安装了VS2019,建议单独安装SDK和WDK。

如果需要历史版本,页面底部的相关下载中可以找到历史版本的链接。选择系统对应的版本下载。

历史版本的WDK在安装的时候一定要选上调试工具,这样就不需要单独安装Dbgview和WinDBG.

VS2019设置

打开VS2019,选择创建新项目,选择 Empty WDM Driver,如果没有,请检查SDK和WDK是否安装成功,SDK和WDK的版本是否对应。

创建新项目后在项目属性中进行设置,降低警告和禁用缓解库。(注意属性页中设置的平台一定要和系统相同。32位和64位之分)。


EWDK使用

将下载好的EWDK文件解压后,双击执行LaunchBuildEnv.cmd,然后会弹出一个命令行窗口

cd 进入驱动源代码目录(目录有xxx.sln文件)

build,编译驱动,这里我选择X64 且debug模式编译

输入命令:msbuild /t:clean /t:build .\xxx.sln /p:Configuration=“Debug” /p:Platform=x64 /p:TargetVersion=“Windows10”

编译完成,去查看x64/debug目录下面有编译好的驱动

注意事项

1.如果使用Checked Build Environment 生成sys文件,一定要选择对应系统的版本,否则生成的驱动文件安装后无法启动。
2.VS中生成也要区分64位和32位。否则驱动无法启动。
3.CMD或者SRVINSTW两个程序一定要使用管理员身份运行。

错误解决方法

系统错误1275


原因:生成的驱动文件和系统不对应。
解决:使用对应系统版本的Checked Build Environment生成驱动文件。或 VS生成对应系统的 32位或64位版本的驱动文件。

系统错误557


原因:win7及其以后的系统禁止没有签名证书的驱动程序运行。
解决方法:启动计算机的时候按F8,进入Windows系统的高级启动项,我们会发现与原有的XP系统多了一些不同的地方,最后一项中为禁用驱动程序签名强制,选择此项进入系统即可使用未有数字签名的驱动程序,当然,使用调试模式同样也可以加载未有签名的驱动,这里不推荐。
上面解决方法很简单,但是只能是在开机时设置,并且在计算机重新启动之后又回到了原始的状态,有没有什么一劳永逸的方法呢?办法还是有的——关闭Windows 7系统中的驱动签名强制要求,关闭强制驱动签名的命令为:

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS

使用管理员的身份打开CMD命令行,然后输入上面的命令,完成之后重新启动计算机,就可以随时在64位win7系统上使用未有数字签名的驱动程序了。当然,此操作也降低了系统的安全系数,所以不推荐一直关闭,而且也不推荐也没有经验的用户使用,养成良好的安全意识是安全的第一步。

Windows内核安全与驱动编程学习笔记----1.WDK安装相关推荐

  1. 《Windows内核安全与驱动编程》-第五章阻塞、等待与安全设计

    应用与内核通信 文章目录 应用与内核通信 5.3 阻塞.等待与安全设计 5.3.1 驱动主动通知应用 5.3.2 通信接口的测试 5.3.3 内核中的缓冲区链表结构 5.3.4 输入: 内核中的请求处 ...

  2. Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础

    Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...

  3. 寒江独钓windows 内核安全编程学习笔记

    寒江独钓windows 内核安全编程学习笔记 本博客记录自己的学习过程,如有侵犯或者打扰请告知. 由于项目的需求,第一次接触到驱动程序.开始学习了寒江大神的的内核安全编程.小白一个,第一章就遇到了问题 ...

  4. Windows驱动开发学习笔记(七)—— 多核同步内核重载

    Windows驱动开发学习笔记(七)-- 多核同步 基础知识 并发与同步 分析 InterlockedIncrement 原子操作相关API 内核文件 多核同步 临界区 示例一:错误的临界区 示例二: ...

  5. Windows驱动开发学习笔记(三)—— 内核空间内核模块

    Windows驱动开发学习笔记(三)-- 内核空间&内核模块 内核空间 实验 第一步:编译如下代码 第二步:将 .sys 文件拷贝到虚拟机中 第三步:部署 .sys 文件并运行 第四步:创建一 ...

  6. Windows驱动开发学习笔记(六)—— Inline HOOK

    Windows驱动开发学习笔记(六)-- Inline HOOK SSDT HOOK Inline Hook 挂钩 执行流程 脱钩 实验一:3环 Inline Hook 实验二:0环 Inline H ...

  7. Windows驱动开发学习笔记(五)—— SSDT HOOK

    Windows驱动开发学习笔记(五)-- SSDT HOOK 系统服务表 系统服务描述符表 实验一:通过代码获取SSDT表地址 通过页表基址修改页属性 方法1:修改页属性 方法2:修改CR0寄存器 实 ...

  8. Windows驱动开发学习笔记(四)—— 3环与0环通信(常规方式)

    Windows驱动开发学习笔记(四)-- 3环与0环通信(常规方式) 设备对象 创建设备对象 设置数据交互方式 创建符号链接 IRP与派遣函数 IRP的类型 其它类型的IRP 派遣函数 派遣函数注册位 ...

  9. Windows驱动开发学习笔记(一)—— 环境配置第一个驱动程序

    Windows驱动开发学习笔记(一)-- 环境配置&第一个驱动程序 环境配置 第一个驱动程序 环境配置 安装VS2010:https://pan.baidu.com/s/1uZWWxCtB60 ...

最新文章

  1. linux查看文件安全权限,Linux系统下如何查看及修改文件读写权限
  2. 关于fastlane自动化打包
  3. python for循环结构_循环结构-for循环
  4. Python 中 if __name__ == '__main__': 的理解
  5. NETGEAR拒绝连接请求_破案:Kubernetes/Docker 上无法解释的连接超时
  6. nginx工作笔记004---配置https_ssl证书_视频服务器接口等
  7. 阿里腾讯决战ToB“操作系统”
  8. 如何在VS2005下生成动态运行时库
  9. 基于Dialog的MFC程序在启动时隐藏为托盘程序(三)
  10. 【机械仿真】基于matlab GUI智能电梯仿真系统【含Matlab源码 1087期】
  11. Django OAuth2 linkedin的第三方登录
  12. 写一个小程序实现win系统定时锁屏
  13. SVN 中文工具(Tools)
  14. 硬件检测软件---AIDA64
  15. 80坐标系(3度带)转经纬度
  16. matlab 安装 提取错误,安装时 提取文件错误
  17. 【包装类、自动装箱/自动拆箱】
  18. 系统可打开最大文件数过小,导致CHECK_NRPE: Error - Could not complete SSL handshake
  19. 小鸡手柄和劲玩X3蓝牙手柄对比
  20. 项目管理中的边边角角 之三

热门文章

  1. EditPlus去除空行
  2. 学python要有多少英语词汇量_学习英语到底多少词汇量够用,1年能学习到1000的词汇量吗?...
  3. 比炒币还香的在线作图工具draw.io
  4. 世界500强公司要求员工必须熟练掌握的七种工作方法
  5. android 高德地图移动卡顿_Xamarin.Forms Android使用高德地图SDK
  6. 将《2020中国统计年鉴》中的GDP数据换算成不变GDP数据
  7. 【图像处理】非线性滤波
  8. Solidity 安全:已知攻击方法和常见防御模式综合列表
  9. 《A CMOS Time-to-Digital Converter With BetterThan 10ps Single-Shot Precision》论文阅读
  10. 软件工程——(1)软件与软件工程 思维导图