阅读:1510回复:6
说法求证——研究防火墙的请进
我想求证以下说法,问题描述如下:
最近我在研究防火墙技术(XP),在研究其数据包拦截的方法时,我找到了以下几种方法:(基于NDIS) 1、注册一个协议,找到协议头,并遍历所有协议,找到TCP/IP协议,并HOOK修改其注册函数,RECV,SEND,从而可以拦截TCP数据包。 2、在passthru的基础之上开发,开发一中间层驱动,对数据进行拦截, 3、开发一NDIS.sys函数拦截驱动。原理是xfilter 2.1的原理。在系统重动,NDIS加载,然后就开始加载我们的驱动,我们的驱动就可以直接修改NDIS.sys中的输出函数,这样就可以作数据包的拦截。 我不知道我在哪看到以下说法: 第一种方法不好,因为他的兼容性不好,且容易被恢复。第一种方法也有他不好的地方,我在测试的时间发现,因为只HOOK了recv,send函数,只在先把本地连接停用,再启用的话,这个方法就失效了, 第二种方法倒没听说有什么意见,我不知道可不可以用这种方法来做防火墙。 第三种方法最好,原因是由于他修改了ndis.sys的输出表,把想关函数换成了自己的,这样想对于于上面的两种方法而言,是最不易突破的,最安全的。 还有一种说法是,基于NDIS HOOK的防火墙,其兼容性不好,在这个问题上我希望谁能给我一个详细的说法。 不知大家对这三种方法有没有什么高见? 我希望得到更多的相关防火墙信息,欢迎交流。 |
|
沙发#
发布于:2007-10-24 17:43
这种方法在vista下失效.vista下用ndis filter
|
|
|
板凳#
发布于:2007-10-24 19:29
NDIS HOOK
里面有办法取到ip地址吗? 如果只取到mac地址,在跨网段时,所有的目标物理地址都是路由器的地址 |
|
地板#
发布于:2007-10-25 14:53
能的到IP
|
|
地下室#
发布于:2007-10-25 15:38
恩,那在passtru中也能取得ip吗?
|
|
5楼#
发布于:2007-10-30 07:49
tdi + method 2
|
|
6楼#
发布于:2007-10-31 14:02
我装的vista 上 "ndis Sample NDIS 6.0 Filter Driver
filter"不工作。用它那个passthru倒是没问题 |
|
|