windows网络驱动开发

基石:WFP

1、简介

        Windows过滤平台(Windows Filtering Platform, WFP),是从Vista系统后新增的一套系统API和服务。开发者可以在WFP框架已划分的不同分层中进行过滤、重定向、修改网络数据包,以实现防火墙、入侵检测系统、网络监控等软件。(Windows内核安全与驱动开发)

2、框架

3、基本对象模型

过滤引擎

        WFP内部存在多个分层,每个分层对应网络协议栈特定的层。而每个分层中可以存在不同优先级的子层和对应的过滤器,过滤器中存在规则与对应的动作。

        由于分层中存在多个子层和多个过滤器,可能存在同时名中多个过滤器规则的网络事件。由此过滤仲裁器(Filter Arbitration)计算出最终过滤动作,交给内核态过滤引擎,引擎再反馈给垫片。

垫片

        安插再系统网络协议站的不同层中。除了用于获取网络数据传递给内核态过滤引擎,还负责把内核态过滤引擎过滤结果反馈给网络协议栈。垫片对于开发者透明。

呼出接口

        呼出接口由一系列回调函数组成,当某个过滤器规则被名中,对应的呼出接口的回调函数被调用。

分层

        分层代表系统网络协议栈的一个特定的层,常见的"管理过滤分层标识"

子层

        子层是分层内更小的划分,一个分层可以划分多个子层。每个子层需要分配一个权重,权重值越大,优先级越高。(前面分层拦截后,后方分层无法收到)

过滤器

        过滤器实际上是一套规则和动作的集合。规则指明了需要过滤哪些网络数据包,以及对于的执行动作。

引用1:NPF

知名抓包工具wireshark使用的Npcap sdk,底层使用NDIS和WFP,在loopback部分,使用的WFP功能。

引用2:WinDivert

官网

WinDivertTool github 地址 上有很多使用WinDivert库的开源项目,可供参考

关于性能问题:目前看WinDivertRecv和WinDivertSend都非线程安全,需要考虑如何实现多线程处理。

相关推荐

  1. windows驱动开发-I/O请求(三)

    2024-04-20 14:36:03       15 阅读
  2. windows驱动开发-I/O请求(一)

    2024-04-20 14:36:03       15 阅读
  3. windows驱动开发-I/O请求(二)

    2024-04-20 14:36:03       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 14:36:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 14:36:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 14:36:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 14:36:03       20 阅读

热门阅读

  1. 开源AI Agent框架的选择

    2024-04-20 14:36:03       12 阅读
  2. 驱动开发platform传地址,led点灯

    2024-04-20 14:36:03       12 阅读
  3. MySQL -事务、锁

    2024-04-20 14:36:03       12 阅读
  4. C# 截图并保存为图片

    2024-04-20 14:36:03       15 阅读
  5. 整洁代码:定义和原则

    2024-04-20 14:36:03       12 阅读
  6. 嵌入式开发中模板方法模式实现

    2024-04-20 14:36:03       13 阅读
  7. 1013 数素数

    2024-04-20 14:36:03       13 阅读
  8. Linux常见命令总结

    2024-04-20 14:36:03       11 阅读
  9. python读写文件学习笔记

    2024-04-20 14:36:03       13 阅读
  10. BOOT和UBOOT区别与联系

    2024-04-20 14:36:03       10 阅读
  11. C 练习实例23

    2024-04-20 14:36:03       13 阅读
  12. Docker入门

    2024-04-20 14:36:03       12 阅读
  13. 无人机如何远程控制其他设备

    2024-04-20 14:36:03       14 阅读
  14. Docker搭建IPFS

    2024-04-20 14:36:03       12 阅读