20楼#
发布于:2003-10-15 11:51
ip欺骗和做nat的差别还是很大的:) 怎么会有两个包发出去呢?在作NAT时,都可以设置用哪些MINIPORT为另外那些MINIPORT做NAT,当我们用WINCAP收到本机给外网的包时可以判断出来,不再重新组包发出,而对于内网发给外网的包则重新组包由外网网卡发出,对于外面进来的包同样如此,怎么就会多出一个包来呢,就算多出来的也是应 |
|
21楼#
发布于:2003-10-15 12:28
NDIS HOOK是可以做NAT的,这个好象有回到“捕获”与“截获”的概念区分上。只要是截获就一定可以实现所有需要更改网络数据包的应用,而捕获只能实现网络数据包的查看,不能去更改! 同意你这一段说法,但WINCAP绝对可以做NAT,其实我们NAT对数据包所做的更改与IM层对数据的更改再转给上层是有区别的!我们NAT对数据包做的更改是要转发给外网或是内网的,而不是说“悄悄地”在中间层把数据包改掉的概念,因此我们的WINCAP可以做,首先,我们WINCAP可以收到并判断需要转发的包,然后,我们的WINCAP可以发送我们自己重组的包,也就是说,我们已经达到了两个条件,接收所有需要转发的包,转发经过我们重组的包,因此,利用WINCAP,我们所要做的就是重组我们所要转发的包! 事实上,NAT不需要也不必要做一个虚拟MINIPORT,所以只要能接收和发送就OK了,我们的协议驱动就可以做到! 但对于VPN来说,因为我们必须虚拟一个网卡出来,因此我们必须在协议驱动的上沿提供一个MINIPORT接口! |
|
22楼#
发布于:2003-10-15 12:33
[quote]ip欺骗和做nat的差别还是很大的:) 怎么会有两个包发出去呢?在作NAT时,都可以设置用哪些MINIPORT为另外那些MINIPORT做NAT,当我们用WINCAP收到本机给外网的包时可以判断出来,不再重新组包发出,而对于内网发给外网的包则重新组包由外网网卡发出,对于外面进来的包同样如此,怎么就会多出一个包来呢,就算多出来的也是应 |
|
|
23楼#
发布于:2003-10-15 13:17
[quote][quote]ip欺骗和做nat的差别还是很大的:) 怎么会有两个包发出去呢?在作NAT时,都可以设置用哪些MINIPORT为另外那些MINIPORT做NAT,当我们用WINCAP收到本机给外网的包时可以判断出来,不再重新组包发出,而对于内网发给外网的包则重新组包由外网网卡发出,对于外面进来的包同样如此,怎么就会多出一个包来呢,就算多出来的也是应 |
|
24楼#
发布于:2003-10-15 13:26
相反,我倒觉得用HOOK做很困难,HOOK是截获上下沿之间的数据流,是纵向的,NAT是两个MINIPORT之间的数据流,是横向的!我想HOOK除了做防火墙其他功能都很难实现,做VPN也难,而VPN可能最好还是2003 DDK的MUX例子来实现了,是在协议上再实现一个MINIPORT接口,他介绍就是说用来做VPN的!
|
|
25楼#
发布于:2003-10-15 14:10
用hook技术不能实现nat,因为packet接收以后是存放在buffer中的,而hook提供的所有函数中,只能得到第一个buffer的地址(不是buffer structure),以后的buffer不能获取.所以无法修改tcp checksum.
hook技术只能提供规则匹配,不能修改包,因而不能用hook实现nat |
|
26楼#
发布于:2003-10-15 14:26
用hook技术不能实现nat,因为packet接收以后是存放在buffer中的,而hook提供的所有函数中,只能得到第一个buffer的地址(不是buffer structure),以后的buffer不能获取.所以无法修改tcp checksum. 你说的是filter hook driver,不是ndis hook。 |
|
|
27楼#
发布于:2003-10-15 14:49
HOOK不是不能改包,是如何转发包,应
|
|
28楼#
发布于:2003-10-15 15:52
[quote]HOOK不是不能改包,是如何转发包,应
|
|
|
29楼#
发布于:2003-10-15 19:59
好像HOOK里里都不自个打开任何HANDLE吧,都别个调用时给了你一些参数,你就用得放心?呵呵!
|
|
30楼#
发布于:2003-10-16 10:05
好像HOOK里里都不自个打开任何HANDLE吧,都别个调用时给了你一些参数,你就用得放心?呵呵! 我靠,这个问题也是问题。难道想别人把饭喂到你嘴里啊! |
|
|
31楼#
发布于:2003-10-22 13:28
还不想别人给喂饭
现在也不想用HOOK做NAT |
|
32楼#
发布于:2004-07-03 02:06
这个帖子居然给我翻出来了
winpcap事不能够做nat的,原因在tcp三次握手的时候如果没有向协议堆栈注册的话,系统会发送一个RST标识的tcp包来破坏三次握手, winpcap官方网站上也说过,只能用于应用级防火墙(代理服务器) 做不到NAT的功能,除非不用tcp |
|
|
33楼#
发布于:2004-07-03 17:45
这个帖子居然给我翻出来了 够狠!!!!!!!!!!! 这个帖子也能翻出来!!!!!!!!!!! |
|
|
34楼#
发布于:2004-07-06 17:23
当然可以,用原始套疖子都可以实现nat
|
|
|
35楼#
发布于:2004-07-07 11:05
原始套疖子都可以用来实现NAT,ndis当然没问题了 :)
|
|
|
36楼#
发布于:2004-08-06 09:05
能不能做NAT和是不是协议驱动无关。就如同WINCAP,如果没有TCP、IP协议存在,一样可以完美实现NAT功能,大家一直认为协议驱动不能做NAT实现,主要的原因就是上面仁兄说的。TCP协议会发一个RST包回去,同时还有ICMP包也会发送。 :D
|
|
|
37楼#
发布于:2004-08-09 18:02
谁说NDIS HOOK 不能做VPN,告诉你。
我刚刚做好了一个。还兼容各种操作系统呢。 |
|
38楼#
发布于:2004-09-28 19:28
[quote]用hook技术不能实现nat,因为packet接收以后是存放在buffer中的,而hook提供的所有函数中,只能得到第一个buffer的地址(不是buffer structure),以后的buffer不能获取.所以无法修改tcp checksum. 你说的是filter hook driver,不是ndis hook。 [/quote] 这样!!!!!!!!! :( |
|
|
上一页
下一页