基于NDIS(网络驱动接口标准)包拦截技术
作者: 甘嘉平, 出处:BLOG整理, 责任编辑: 张帅,
2008-01-18 00:00
看了很多提供数据包的拦截技术,其中最多的是编写IM DRIVER在NDIS中间层 对MINIPORT(网卡驱动程序)和协议驱动程序之间的数据包进行拦截。但编写该过滤程序拦截程序非常的复杂,这里介绍一种更有效的基于NDIS包拦截技术……
那么又如何勾挂协议与网卡之间的NDIS_OPEN_BLOCK表呢。我们再回到NDIS_PROTOCOL_BLOCK这张表中,在NDIS_PROTOCOL_BLOCK表中字段PNDIS_OPEN_BLOCK OpenQueue;就是所有该协议所有NDIS_OPEN_BLOCK的表头。
通过AdapterNextOpen遍历一下,再勾挂一把。就可以顺利拦截了。
值得注意的是。
1、NDIS_OPEN_BLOCK
NDIS_PROTOCOL_BLOCK这些结构不同NDIS版本是不同的,解决方法是在windows 98和windows95下(ndis 3.1)使用windows98ddk 带的NDIS.H 里的定义在windows me下(ndis 5.0或4。0)请使用WINDOWS 98ddk里NDIS.H里的定义nt(ndis4.0)用NTDDK里的定议,以此类推,2000(ndis5.0)
2、不要重复勾挂同一个函数。
http://www.gjpsoft.com/ndishook1.c此部分为NT部分的源代码。要使用在9X下需要修改,因为没有整体分开,一些函数和头文件未给出,但不影响框架请阅读者自己修改。
- 本文关键词:

