通过WFP,我们可以编译得到sys驱动文件。此时需要我们把sys驱动文件部署到目标主机上,本文介绍部署的方式方法。

术语

host computer: 宿主主机,开发、编译驱动的主机
target/test computer:目标主机,安装驱动产品的主机
deploying the driver:部署过程,将宿主主机编译得到的驱动安装到目标主机的过程。

实测发现,当目标主机为 Windows 7时,部署驱动时会相当简单。

步骤

  1. 在目标主机,以管理员权限打开cmd,输入:
 bcdedit /set TESTSIGNING ON

但是,此时一般都会报错:

设置元素数据时出错。
该值受安全引导策略保护,无法进行修改或删除。

方法:重启系统,进入BIOS,找到Security——Secure Boot,将Secure Boot Control改为Disabled(一般默认为Enabled),按F10保存退出进入系统。

PS C:\WINDOWS\system32> bcdedit /set TESTSIGNING ON
操作成功完成。
  1. 编译msnmntr项目
    下载微软官方项目——msnmntr
    https://github.com/Microsoft/Windows-driver-samples
    msn项目目录为 network/trans/msnmntr
    使用vs2017打开该项目的.sln文件
    先编译msnmntr驱动项目。
    编译过程有几个注意点:

    • 设置驱动的目标平台为Windows 7
    • 设置驱动版本为release,x64
    • 设置msnmntr.inf文件,把DriverVer的值改成一个靠近当前时间的时间值,否则会编译报错,讲时间错误。

      编译成功后,会得到如下文件:

      将这些文件拷贝至目标主机。在目标主机右键inf文件,选择安装即可。
      同时将驱动的pdb文件拷贝到目标主机,这个文件可以用于获取驱动的输出。
  2. 试运行msnmntr服务
    使用管理员权限,打开powershell
    输入net start msnmntr
    输出:msnmntr服务已经启动成功 说明驱动安装成功。
    如果输出发生系统错误 1275,那么需要做如下检查:
  • 是否禁止驱动检查
  • 是否生成x64的驱动文件,编译过程中是否是64位编译
  • 编译过程中是否配置好目标平台为windows 7.
  1. 编译monitor项目,这个项目是规则库的管理工具
    注意配置目标平台为windows 7,编译器为x64。

  2. 将得到的monitor.exe复制到目标主机

  3. 把traceview.exe拷贝到目标主机,该文件在 C:\Program Files (x86)\Windows Kits\10\Tools\x64 目录下

  4. 打开命令行

PS C:\Windows\system32> cd C:\Users\jmh081801\Desktop\msnmntr
PS C:\Users\jmh081801\Desktop\msnmntr> .\monitor.exe addcallouts
PS C:\Users\jmh081801\Desktop\msnmntr> .\monitor.exe
PS C:\Users\jmh081801\Desktop\msnmntr> .\monitor.exe
PS C:\Users\jmh081801\Desktop\msnmntr> .\monitor.exe addcallouts
Opening Filtering Engine
Starting Transaction for adding callouts
Successfully started the Transaction
Adding Persistent Flow Established callout through the Filtering Engine
Successfully Added Persistent Flow Established callout.
Adding Persistent Stream callout through the Filtering Engine
Successfully Added Persistent Stream callout.
Committing Transaction
Successfully Committed Transaction.

可以看到一开始运行monitor.exe时没有任何结果输出,这是因为缺乏vc++2015的运行库。安装好对应的运行库即可。

最后一条命令就是安装好运行库后,成功运行的输出。
8. 添加监控,例如chrome.exe

PS C:\Users\jmh081801\Desktop\msnmntr> .\monitor.exe monitor "C:\Program Files (x86)\Google\Chrome\Application\chrome.ex
e"
Opening Filtering Engine
Successfully opened Filtering Engine
Looking up Application ID from BFE
Successfully retrieved Application ID
Opening Monitor Sample Device
Successfully opened Monitor Device
Adding Filters through the Filtering Engine
Starting Transaction
Successfully Started Transaction
Adding Sublayer
Sucessfully added Sublayer
Adding Flow Established Filter
Successfully added Flow Established filter
Adding Stream Filter
Successfully added Stream filter
Committing Transaction
Successfully Committed Transaction
Successfully added Filters through the Filtering Engine
Enabling monitoring through the Monitor Sample Device
Successfully enabled monitoring.
Events will be traced through WMI. Please press any key to exit and cleanup filters.

运行chrome.exe,访问网页看看效果。在traceview.exe看看效果。。。。。

WFP(三)——编译、部署驱动文件*.sys——微软msnmntr项目相关推荐

  1. linux LED设备驱动文件

    文章目录 前言 一.地址映射 二.I/O 内存访问函数 读函数 写函数 三. 编程实战 1.驱动文件 2.应用文件 3.加载驱动 4.应用文件测试 前言 在linux驱动中点亮LED,与裸机实验不同的 ...

  2. 利用installshiled打包.inf和.sys驱动文件到setup.exe的方法

    近期收到一个需求,简单来说就是把某驱动程序打包为一个单独的setup.exe,方便使用. 由于之前并没有打包过驱动安装文件的经验,只是简单做过纯应用软件的打包,但是想来应该方法和步骤也差不多,于是研究 ...

  3. windows7系统无法开机显示丢失volmgrx.sys驱动文件

    windows7断电后,显示丢失volmgrx.sys驱动文件,只需要下载该文件,通过pe替换文件,可以开机. 第一步.获取丢失文件,在下面链接中,可以下载到相应文件.要根据自己的系统版本,下载对应的 ...

  4. linux学习笔记(五)编译内核模块生成ko驱动文件

    系列文章目录 linux学习笔记(五)编译内核模块生成ko驱动文件 文章目录 系列文章目录 前言 一.加载内核简介 二.第一个hello world文件 1.文件树 2.hello.c 3.Makef ...

  5. Spring Boot(三) 将war文件部署到tomcat 、 Thymeleaf示例

    Spring Boot(三) 将war文件部署到tomcat . Thymeleaf示例 一 . 将war文件部署到tomcat 对于Spring Boot WAR部署,需要执行三个步骤: 扩展Spr ...

  6. C#中使用OpenGL:(三)将.lib文件编译为.dll文件

    C#不能调用C/C++lib文件的函数,但能调用dll文件的函数.可是现在的情况是,我只有一个lib文件,函数的实现都在里边了.能不能把lib变为dll呢?答案是肯定的. C# OpenGL接口源码. ...

  7. 7.荔枝派 zero(全志V3S)-编译内核驱动,生成KO文件

    上面是我的微信和QQ群,欢迎新朋友的加入. 在网上溜了一大圈,发现竟然没人写过荔枝派编译内核驱动的帖子. 或许是我输入的关键字不对 今天特意做了一下这个事情. 1.改kernel makefile 当 ...

  8. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程

    文章目录 1.驱动进化之路:设备树的引入及简明教程 1.1 设备树的引入与作用 1.2 设备树的语法 1.2.1 Devicetree格式 1.2.1.1 DTS文件的格式 1.2.1.2 node的 ...

  9. 三.字符设备驱动高级

    目录 一.注册字符设备驱动新接口1 1.1.新接口与老接口 1.2.register_chrdev_region与alloc_chrdev_region函数简介 1.3.cdev介绍 1.4.设备号 ...

最新文章

  1. CES上百度无人车队炫技,陆奇要用“China speed”改变世界
  2. [c/c++] programming之路(28)、结构体存储和内存对齐+枚举类型+typedef+深拷贝和浅拷贝...
  3. [数据库基础]——索引详解
  4. IDEA2021配置Tomcat
  5. Java代理设计模式(Proxy)的四种具体实现:静态代理和动态代理
  6. lis25ba_LIS25BA - MEMS数字输出运动传感器:低噪声,高带宽,3轴加速度计,带TDM接口 - STMicroelectronics...
  7. webpack打包原理_对于webpack打包原理你知道有多少?
  8. Oracle安装-------实例化EM 配置文件时出错问题 ( 转 )
  9. Django的基础操作总结
  10. 计算机物理学知识点,初中物理知识点计算公式表总结
  11. n1装哪个版本的linux,斐讯t1/N1是装Ubuntu,还是LinuxDeploy,哪个更好?
  12. html+css3跑马灯(抖音我们的照片记录幸福到永远)
  13. 共享系统APP开发:带你体验真实的共享生活
  14. 计算机卸载一个程序正确操作,电脑卸载程序时提示请等待当前程序完成卸载或更改怎么办...
  15. 如何将EXCEL表格的内容导入到CDR中?
  16. 【技术美术百人计划】美术 1.1 美术理论基础
  17. 2022 开源轮子学习笔记
  18. bzoj 2244: [SDOI2011]拦截导弹 cdq分治
  19. 如何应对外包公司(文思海辉)的Python后端面试
  20. 保险 -- 雪中送炭的投资

热门文章

  1. 【分子相互作用】基于MATLAB的分子相互作用的表征模型仿真
  2. 关于XPS的一点思考(1)-XPS的起源
  3. CentOS7安装mysql5.7.19的手顺,步骤(非常详细)
  4. Muse UI遇到的坑
  5. 汕头大学本科学生毕业论文(设计)撰写规范(2018版)
  6. “第三只眼”修炼手册
  7. 【电脑自动关机】开机后Mysql再也启动不起来了。问题解决
  8. 多多情报通:拼多多数据分析工具在哪?
  9. drawio界面自定义配置
  10. IBM Cloud VPC网络与本地办公网络的互通