阅读:4046回复:23
在使用串行moderm通过电话线拨号上网的情况下,如何截获网络包?
我想写一个驱动程序,在使用串行moderm通过电话线拨号上网的情况下,能截获数据包,什么帧格式的都可以。可以用NDIS的中间层驱动程序吗?
|
|
最新喜欢:luoq_d... |
沙发#
发布于:2003-12-10 09:13
可以,仿照XpDDK的Passthru就可以了.里面包含了对NdisMediumWan的处理.
|
|
|
板凳#
发布于:2003-12-10 09:39
passthru是收不到ppp链路层的报文的。只能收到ip报文。
|
|
|
地板#
发布于:2003-12-10 13:46
中间层驱动不是只能截获IP包,怎么还想着截获什么链路层的数据帧,我想她问的问题应该是:
1、ppp协议的数据帧对于我们的passthru中间层是不是透明的,是不是:以太头+IP头+数据,这个也许是个愚昧的问题;) 2、如果是透明的,那么NDIS就没有必要分什么WAN、Ether的处理函数了哦 3、如果不是透明的,那么我们中间层接收的就不应该是:以太头+IP头+数据,那么应该是什么? 各位斑竹,有空发发贵帖吧;) |
|
|
地下室#
发布于:2003-12-10 13:55
中间层驱动不是只能截获IP包,怎么还想着截获什么链路层的数据帧,我想她问的问题应该是: 我现在知道用ndis截获以太网和pppoe接入方式下,Ndis中间层可以截获数据包,但是不知道ppp接入方式下,中间层能否截获到数据包?另外,以太网接入方式为例,为什么中间层截获的数据包总带有 以太头,有没有办法改变中间层驱动的加载顺序,使它接收到ip报文,不带有以太头? |
|
5楼#
发布于:2003-12-11 09:08
先发20分,我已经可以截获到三种接入方式下的数据包。但是对于
pppoe和ppp协议都太复杂了,要想对包分析,太难。要是将驱动加载到tcp/ip下面,直接得到ip包,就好了。还请高手指点! |
|
6楼#
发布于:2003-12-11 09:43
用猫拨号的ppp报文你是怎么得到的?
|
|
|
7楼#
发布于:2003-12-11 10:09
用猫拨号的ppp报文你是怎么得到的? 将中间层驱动程序的inf文件的HKR, Ndi\\Interfaces, FilterMediaTypes, , \"ethernet,tokenring, fddi\"修改为 \"ethernet,tokenring, fddi,wan\".在MPInitialize中若Medium 是NdisMediumWan则改为NdisMedium802_3. |
|
8楼#
发布于:2003-12-11 10:32
这样得到的只是以太网格式的报文,不是ppp的报文。从ndiswan上来的报文都是以太帧,ndiswan已经把ppp格式的报文解析以后转成以太网的了。
|
|
|
9楼#
发布于:2003-12-11 11:43
他在做什么啊?〉
呵呵, |
|
|
10楼#
发布于:2003-12-11 13:16
回答2个问题:
1、为什么中间层驱动捕获的数据包含有以太头,我想是因为不同的NIC会绑定不同的mac信息吧,要不然数据从协议层下发的时候,就会找不到到底应该发送到哪一个NIC了啊。 2、如果modem走ppp协议,我想中间层驱动是捕获不到数据包的,因为NDIS IMD驱动只认识以太帧 3、但是如果modem走的是pppoe就不同了,什么叫oe,我靠,就是:over ether的意思,也就是说,用以太数据帧来实现ppp,那中间层驱动应该一定可以捕获到,谁让你是以太帧呢 所以说啊,大家也不要研究什么在ppp上建造什么NDIS IMD驱动了,现在大部分ADSL拨号都用pppoe协议了,呵呵,应该对passthru来说就是wan,是透明的才对,有什么意见啊大家伙? |
|
|
11楼#
发布于:2003-12-11 14:06
回答2个问题: 以上的几个观点,我的看法是: 1、 我很想捕获到不带以太头的数据包(ip),但是未果,仍在努力; 2、我已经用imd截获了ppp接入方式的以太报文(win2k下) 3、用imd截获PPPoE的以太报文也没有问题。 哪位知道如何做,才能用imd截获到不带以太头的ip报文? |
|
12楼#
发布于:2003-12-11 14:10
这样得到的只是以太网格式的报文,不是ppp的报文。从ndiswan上来的报文都是以太帧,ndiswan已经把ppp格式的报文解析以后转成以太网的了。 mikeluo讲的没错,我只是截获了ppp方式下的以太报文。这就足够了,我只是想做一个ppp方式下的报文过滤。可能imd真的不能截获 ppp报文。 |
|
13楼#
发布于:2003-12-11 14:18
这个问题,我还剩40分,怎么不能发分了?
|
|
14楼#
发布于:2003-12-11 14:32
[quote]这样得到的只是以太网格式的报文,不是ppp的报文。从ndiswan上来的报文都是以太帧,ndiswan已经把ppp格式的报文解析以后转成以太网的了。 mikeluo讲的没错,我只是截获了ppp方式下的以太报文。这就足够了,我只是想做一个ppp方式下的报文过滤。可能imd真的不能截获 ppp报文。 [/quote] 略作一下处理不就得PPP报文了??? |
|
15楼#
发布于:2003-12-11 14:35
[quote][quote]这样得到的只是以太网格式的报文,不是ppp的报文。从ndiswan上来的报文都是以太帧,ndiswan已经把ppp格式的报文解析以后转成以太网的了。 mikeluo讲的没错,我只是截获了ppp方式下的以太报文。这就足够了,我只是想做一个ppp方式下的报文过滤。可能imd真的不能截获 ppp报文。 [/quote] 略作一下处理不就得PPP报文了??? [/quote] 不好意思,搞错了:(:(:(,使用Modem的确不能截获PPP报文。 |
|
论坛版主
|
16楼#
发布于:2003-12-11 16:27
兄弟,我对这个也感兴趣,正想弄一个出来,现在的项目需要支持wan,你截获的主要目的是ip包吧,如果ndis为你屏蔽下层mac的帧不是更好?只要所有上下的ip都要过im就好了,刚才看你们写的ppp在接受后被ndis先转换成802.3的帧是否属实?请确认一下:)我可以不试了,至于ppp0e也一样,你们实验结果可否告知
|
|
17楼#
发布于:2003-12-11 17:01
回答2个问题: |
|
|
18楼#
发布于:2003-12-11 17:03
[quote]回答2个问题: 以上的几个观点,我的看法是: 1、 我很想捕获到不带以太头的数据包(ip),但是未果,仍在努力; 2、我已经用imd截获了ppp接入方式的以太报文(win2k下) 3、用imd截获PPPoE的以太报文也没有问题。 哪位知道如何做,才能用imd截获到不带以太头的ip报文? [/quote] mac头上在TCPIP驱动里面才被剥掉的,所以你得到的肯定是带mac头的报文。。 带mac头有影响么? |
|
|
19楼#
发布于:2003-12-12 15:10
一天没来就讨论这么多了.
略微补充一点,我想用IM处理Modem拨号问题,对楼主来说是可以的了,可能楼主的项目里也没想要处理PPP报文. 但现在ADSL拨号普遍的很,不支持可能是不成的吧. 我用过的ADSL拨号软件有Windows Xp自带的,RasPPPoE和EnterNet300,我知道RasPPPoE和Xp的实现机制应该是大同小异,都是绑在ndiswan.sys上进行PPPoE封装,这种情况对于Passthru来讲是没有问题的. 但使用EnterNet300就要注意了,EnterNet300有自己的虚拟网卡,而且它不向ndiswan.sys绑定,而是自己做原本ndiswan.sys所做的事情,这时如果Passthru不向它的虚拟网卡绑定的话,是没法拦截PPPoE的数据包的,而向它的虚拟网卡绑定的话,就要小心了,我遇到的情况是绑定的过程没有出现问题,但一通信就会Down机,最终也没有解决. 因此,最好使用RasPPPoE的拨号软件,可惜对于北京的用户要注意了,网通给装ADSL的时候发的拨号软件都是EnterNet300! XP自带的ADSL拨号支持和RasPPPoE的机制是一样的,因此也可以配合Passthru,但据www.RasPPPoE.com讲,XP的是不如它的做的好. 这种情况对于用户使用XP还是好些,因为EnterNet300目前的版本不支持XP. 我的解决之道是,放弃Passthru,改用NdisHook,赫赫/ 前面的描述不见得就对,仅供大伙儿参考.发现问题还请多多指正. |
|
|
上一页
下一页