NDIS 6 Filter
来源:互联网 发布:尽人事知天命下一句 编辑:程序博客网 时间:2024/06/10 08:31
1. 网络数据包的表示
(1)一个网络缓冲区,由结构 NET_BUFFER 表示,它描述了单独的网络数据包。
(2)一个网络缓冲区列表,由结构 NET_BUFFER_LIST 表示,它描述了一组具有相同 OOB 数据的网络包。
(3)一个 MDL 描述了单独虚拟连续的数据缓冲区,MDL 描述的这个缓冲区可以有多个物理上不连续的碎片组成。每一个物理页面被 MDL 内的 PFN 数组描述,并且作为一个部分保存于 MDL 内。
2. NBL 回填空间
(1)由一个 NB 描述的数据缓冲区可以被分割成 未使用数据空间 和 已使用数据空间。未使用数据空间(就是为我们熟知的回填空间),是位于已使用数据空间开始处的前方。由于 NB 被一层层的往前发送,由网络栈中一个驱动传递向另外一个驱动,这种分割状态可以被改变。
(2)NB 结构中的域 DataOffset / CurrentMdl / CurrentMdlOffset 决定了分割的位置。DataOffset 描述了已用数据空间距离缓冲区开始的便宜,它是一个字节数。
(3)CurrentMDL 便利地提供了能从 NB 中获得正确数据的第一个 MDL 的地址。CurrentMdlOffset 是正确数据距离由 CurrentMDL 所描述的缓冲区开始的偏移。
3. 调试器扩展命令
(1)!ndiskd.nbl
0: kd> !ndiskd.nbl 0x87a2fe70 NBL 87a2fe70 Next NBL NULL First NB 87a2ff10 Source 88cd41a0 Flags 00000100 ← NBL_ALLOCATED → Walk the NBL chain → Show out-of-band information → Dump the full data payload
(2)!ndiskd.nb
0: kd> !ndiskd.nb 87a2ff10 NB 87a2ff10 Next NB 0 Length 0n76 Source Pool 87ef9a80 First MDL 87a2ff88 DataOffset 0n38 Current MDL [First MDL] Current MDL Offset 0n38
(3)查看 MDL 描述的数据缓冲区
0: kd> db 87a2ffac L5087a2ffac 40 00 00 00 00 00 00 00-ff ff ff ff ff ff ff ff @...............87a2ffbc 02 00 33 33 00 00 00 0c-00 0c 29 98 c0 71 86 dd ..33......)..q..87a2ffcc 60 00 00 00 00 7f fc d7-33 ab d0 2e 00 0c 29 98 `.......3.....).87a2ffdc c0 71 08 00 45 00 00 3e-05 ca 00 00 80 11 00 00 .q..E..>........87a2ffec c0 a8 01 6a 7c cf a0 6a-d2 35 00 35 00 2a df 87 ...j|..j.5.5.*..
4. 发送与接收数据的拦截
(1)发送数据包的拦截流程
(2)接收数据包的拦截流程
参考文献:点击打开链接
- NDIS 6 Filter
- NDIS filter网络限速
- NDIS Filter Drivers指南
- NDIS Filter Study
- Windows8内核模式下开发NDIS应用-NDIS Filter讲解
- Under Windows8 kernel mode development NDIS application-NDIS Filter explain
- Windows8内核模式下开发NDIS应用-NDIS Filter讲解
- NDIS
- Kaspersky Anti-Virus NDIS Filter导致的网络故障一例
- TDI 或者NDIS filter 实现进程禁止联网
- VS2013+WDK8.1+VirtualBox NDIS Filter驱动开发环境配置
- NDIS Filter (5.x/6.x) 框架分析
- Ndis Filter Driver 驱动正确的安装方法 解决NdisFRegisterFilterDriver 返回 NDIS_STATUS_FAILURE
- NDIS(NDIS开发详解)
- NDIS简介
- NDIS开发
- NDIS backdoor
- NDIS基础知识
- python抓取京东商品颜色&beautifulsoup的一些常用函数
- IDEA快捷键汇总
- java异常-The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly reference
- 解决The connection was refused when attempting to contact localhost
- MFC的 CImage 解析
- NDIS 6 Filter
- MyEclipse中配置maven,入门操作!
- 关于字体适配的那些事
- "launching delegate..." 停在 27%...
- RxJava的使用
- 开始在LeetCode上刷题(1-9)
- 横线滚动条
- 郭霖老师androidpn教学视频笔记
- java并发系列——并发集合(一)