swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:3588回复:24

哪位知道怎样处理ADSL传来的数据包(PPPoE)(80分)?

楼主#
更多 发布于:2002-07-04 19:56
为了支持ADSL,要对ADSL的数据包处理,根据拦截到的数据包,突然发现不是IP包,这是不是就是PPPoE的包,它是怎样的数据格式,我发现在45 00好象是ip头的前面和mac的后面有8个字节,而且在mac的protocol部分好象是88 ..

哪位大侠知道它的数据格式,还有如果我要进行FW的处理,应该怎么取出再还原?谢谢!急呀! 

最新喜欢:

baoyibao99baoyib...
IoriKingdom
驱动小牛
驱动小牛
  • 注册日期2004-06-17
  • 最后登录2010-04-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望23点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-06 00:16
[quote]为了支持ADSL,要对ADSL的数据包处理,根据拦截到的数据包,突然发现不是IP包,这是不是就是PPPoE的包,它是怎样的数据格式,我发现在45 00好象是ip头的前面和mac的后面有8个字节,而且在mac的protocol部分好象是88 ..

哪位大侠知道它的数据格式,还有如果我要进行FW的处理,应该怎么取出再还原?谢谢!急呀! 


你如果只HOOKING TCP/IP的话,你不可能会有机会处理PPPOE协议
因为 PPPOE的IMD驱动程序是透明在进过他的时候已经过滤掉了。
你不会连PPPOE的协议驱动也HOOKING了吧。
 [/quote]

帖子虽然老,但是很有研究价值,请问各位大侠,如果HOOK TCPIP协议的话,发送的函数带不带Enternet帧呢?
我对PPPoE不熟,但是现在又要涉及
天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-05 20:35
各位大侠,我注册了一个假协议,后得到tcpip的receive and send,pppoe的软件我是用的EnterNet300,EnterNet300虚拟了一个网卡,对应内核部分也有一个Open_Block,我把它的Open_Block里的receive和send也hook了,我连接上以后确实是收到了PPPoE的数据包,我看了发送部分,发送的还是IP包,但接收的确是PPPoE的数据包,我能看到0x8863和0x8864,也能看到0021,这是PPP协议里的IP协议封装!

现实情况确是这样的!

我确并不是十分了解它们的整体结构是什么样子的,但我收到的确是这样的包!

我想tcpip的send是在EnterNet300的send之上,而receive确是在EnterNet300之下,这样才能出现这种情况,对吗?

哪位知道原因,能否给讲讲,谢了!

 

\"我想tcpip的send是在EnterNet300的send之上,而receive确是在EnterNet300之下,这样才能出现这种情况,对吗?\"

----------  如pppoe driver是用IMD实现的.这不太可能!

我东西已经发你!请查收!





[color=red]大头鬼! :P[/color]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-05 20:24
那个EnterNet300虚拟的网卡的Open_Block里的Receive接收到数据包以后,它绑定的那个真实网卡的Open_Block里的Receive会不会再收到经过EnterNet300处理过的数据包?

呵呵,我只是这么想,有点天真!
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-05 19:50
各位大侠,我注册了一个假协议,后得到tcpip的receive and send,pppoe的软件我是用的EnterNet300,EnterNet300虚拟了一个网卡,对应内核部分也有一个Open_Block,我把它的Open_Block里的receive和send也hook了,我连接上以后确实是收到了PPPoE的数据包,我看了发送部分,发送的还是IP包,但接收的确是PPPoE的数据包,我能看到0x8863和0x8864,也能看到0021,这是PPP协议里的IP协议封装!

现实情况确是这样的!

我确并不是十分了解它们的整体结构是什么样子的,但我收到的确是这样的包!

我想tcpip的send是在EnterNet300的send之上,而receive确是在EnterNet300之下,这样才能出现这种情况,对吗?

哪位知道原因,能否给讲讲,谢了!

HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2002-07-05 19:34
[quote]为了支持ADSL,要对ADSL的数据包处理,根据拦截到的数据包,突然发现不是IP包,这是不是就是PPPoE的包,它是怎样的数据格式,我发现在45 00好象是ip头的前面和mac的后面有8个字节,而且在mac的protocol部分好象是88 ..

哪位大侠知道它的数据格式,还有如果我要进行FW的处理,应该怎么取出再还原?谢谢!急呀! 


你如果只HOOKING TCP/IP的话,你不可能会有机会处理PPPOE协议
因为 PPPOE的IMD驱动程序是透明在进过他的时候已经过滤掉了。
你不会连PPPOE的协议驱动也HOOKING了吧。
 [/quote]

不管他用IMD还是用NDIS HOOK实现的,他都没有必要处理PPPOE
的数据桢,我看他们你来我往的切磋了多个回合,一直没有搞懂
他们到底在干什么。

不再回忆从前,我已经生活在幸福当中。
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-05 19:25
为了支持ADSL,要对ADSL的数据包处理,根据拦截到的数据包,突然发现不是IP包,这是不是就是PPPoE的包,它是怎样的数据格式,我发现在45 00好象是ip头的前面和mac的后面有8个字节,而且在mac的protocol部分好象是88 ..

哪位大侠知道它的数据格式,还有如果我要进行FW的处理,应该怎么取出再还原?谢谢!急呀! 


你如果只HOOKING TCP/IP的话,你不可能会有机会处理PPPOE协议
因为 PPPOE的IMD驱动程序是透明在进过他的时候已经过滤掉了。
你不会连PPPOE的协议驱动也HOOKING了吧。
我思故我在,脑袋不会坏.
sgren
驱动牛犊
驱动牛犊
  • 注册日期2001-12-04
  • 最后登录2004-10-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-05 18:03
封装在PPP包中的IP数据包的协议类型代码为0021,0021后面就是IP包内容,不过这时,IP的源地址是建立PPP连接时动态分配的IP地址(与本机静态IP地址不同),这是否是造成你没有找到IP地址的原因呢?
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-05 16:44
其实不应该叫ndis hook,不过网上这么说,准确的说是:通过注册假协议的方法进行hook

发送的时候是这样的,
接收的时候却是先到我这里再到pppoe driver,所以很麻烦,
你能跑到pppoe driver receive的上面吗?
pppoe driver是用IMD实现的,我不知道怎样hook它上面的接口?

如果能hook它上面的receive接口就好了,有方法吗?


你的另一贴“怎么判断系统已经被ndis hook过一次了?(50分)”中说:

1,IMD安装有问题,不能支持PPPoE --- 为何,兄台可否,详细点?

pppoe driver是用IMD实现的???

即为:“注册假协议”,怎么是“接收的时候却是先到我这里再到pppoe driver(IMD)”???

swift 兄你有实验环境,可否给我,解惑???

:(
:(
:(

其他的问题我也仔细点想想。。。 晚上在来。。。你还这里否
???

此次我来此处真是收获不少。。。  :)

[编辑 -  7/5/02 by  magicx]
[color=red]大头鬼! :P[/color]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-07-05 16:20
其实不应该叫ndis hook,不过网上这么说,准确的说是:通过注册假协议的方法进行hook

发送的时候是这样的,
接收的时候却是先到我这里再到pppoe driver,所以很麻烦,
你能跑到pppoe driver receive的上面吗?
pppoe driver是用IMD实现的,我不知道怎样hook它上面的接口?

如果能hook它上面的receive接口就好了,有方法吗?
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-07-05 16:10
hoho,好哦,
呵呵,先给你50分先,其实的留着先 :)

其实我是用的EtherNet300进行拨号,我用ndis hook拦截数据包,
发送的包都是ip包,接收的包却都是pppoe的包,所以处理起来比较费劲!希望可以找到一个共同进步的brother,呵呵!


swift 兄:

\"我用ndis hook拦截数据包,发送的包都是ip包,接收的包却都是pppoe的包\"--------ndis hook?  自己的名词?

“发送的包都是ip包”---那应该只是 hook了协议层的吧 :)。

还有ndis中的中间层,微断口,你是否也hook?

另:

数据流是否为 你发 IP ----》(你的“ndis” hook---》)EtherNet300D 的 微断口(在这里将IP -》PPPOE。)---》 下一层的微断口。。。。。。。。。

而你收为 EtherNet300D 的 微断口(PPPOE包) --》 到你的“ndis” hook?




  :)
[color=red]大头鬼! :P[/color]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-05 15:16
hoho,好哦,
呵呵,先给你50分先,其实的留着先 :)

其实我是用的EtherNet300进行拨号,我用ndis hook拦截数据包,
发送的包都是ip包,接收的包却都是pppoe的包,所以处理起来比较费劲!希望可以找到一个共同进步的brother,呵呵!
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-07-05 14:01
magicx兄,我这里有环境,RFC 2516 (PPPOE)我已经看完了,正在看1661,如果有什么问题可以与你商量否?呵呵 :)

my mail: littlecat_zhao@eyou.com
QQ:14147140


嘿嘿,swift 兄:我开始可是冲着你分来的哦! ;)

现在,能有swift 兄你,这样的“后台”顾问,也算是赚大拉! :D

你的进度,如此之快? :o

晚上我给你,发中文的 RFC 2516 (贿赂你 :))。

偶这里没有试验的环境啊(技术上?只能停留在很浅的层面),可我有兴趣。

 :o以后多多,指教啊! :o

[color=red]大头鬼! :P[/color]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-07-05 12:37
magicx兄,我这里有环境,RFC 2516 (PPPOE)我已经看完了,正在看1661,如果有什么问题可以与你商量否?呵呵 :)

my mail: littlecat_zhao@eyou.com
QQ:14147140
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-07-05 12:15
magicx兄,你知道它的怎么压缩的吗?
是不是也把ip数据给压缩了,还是只压缩了ip头?
tcp头呢?


应该是把 PPP 包中的payload。。。。。。。。  

当数据压缩吧,PPP “不关心” payload 中是什么。。。。

PPP也不用“关心”。。。。

嘿嘿。。。

swift 兄:

还是看RFC(原文)1661 (PPP ?)吧。。。。

RFC 2516 (PPPOE)。。。

不然,可能会被我误道哦?前面的,也是我自己的看RFC原文,及自己的理解。。。

另:
你有试验的环境否?

偶这里没有啊,可我有兴趣。 :(

以后还要向swift兄 你请教啊!

 

[color=red]大头鬼! :P[/color]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-07-05 11:38
magicx兄,你知道它的怎么压缩的吗?
是不是也把ip数据给压缩了,还是只压缩了ip头?
tcp头呢?
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-07-05 11:22
[quote][quote]不是,我看了收到的包,是pppoe的包,有mac头,不过里面的protocol字段是8863 or 8864(一是发现,一是会话),我还向里分析了,有ver, type ,code ,session_id,length,之后好象就是ppp的包了,我对ppp不太了解,所以正在看它的结构呢!

gjp了解ppp吗?或者哪有关于pppoe的文章,最好是pppoe的包与ip包的相互转换的文章或程序!谢了!


去掉第一层的 以太封装,去掉第二层的 PPP封装 ,剩下的就是网络层的。。。。。IP 等。。。。。。。。

RFC 你是看定了。。。。。。。。

  :) [/quote]


我是知道是这样的,可是我从45 00 看到source ip , destination ip,可是这根本不是ip头呀,它是不是把ip头给压缩了?还是怎么回事! [/quote]

swift 兄: 不好意思,我在看你第一贴时,我的理解有点”浅“了。。。

嘿嘿。。。还是”RFC 你是看定了。。。。。。。。“   :)

PPP 的封装,中有字段选择是否,起用”压缩等其他功能“。。。。。。。

 :o
[color=red]大头鬼! :P[/color]
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-07-05 11:15
........................1...................2...................3
....0.1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
....+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
....|..VER..|.TYPE..|......CODE.....|..........SESSION_ID...........|
....+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
....|............LENGTH.............|...........payload.............~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

呵呵,这些数据我已经用sofeice看到了,可是
这里的payload是什么?是ppp包吗?哪里有ppp包的格式?
怎么把ppp的包转换成ip包?谢谢!

\"
去掉第一层的 以太封装,去掉第二层的 PPP封装 ,剩下的就是网络层的。。。。。IP 等。。。。。。。。

RFC 你是看定了。。。。。。。。
\"
哪里有ppp包的格式???---------  RFC 1661?

怎么把ppp的包转换成ip包???----  没有,所谓的换成!他只是将 IP 包当 数据!去掉PPP封装就是。

这里的payload是什么?-----  在以太封装格式”看来“是数据,但实际是PPP 包!!!-----------去掉以太封装后,就是PPP 包!

同样的在这个PPP 包中也有payload!你同去掉其PPP封装,就是你的网烙层(IP 等)的包!!!(!道理与在以太封装中取PPP包是一样的!)

:o

:o

:o
[color=red]大头鬼! :P[/color]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-07-05 11:13
[quote]不是,我看了收到的包,是pppoe的包,有mac头,不过里面的protocol字段是8863 or 8864(一是发现,一是会话),我还向里分析了,有ver, type ,code ,session_id,length,之后好象就是ppp的包了,我对ppp不太了解,所以正在看它的结构呢!

gjp了解ppp吗?或者哪有关于pppoe的文章,最好是pppoe的包与ip包的相互转换的文章或程序!谢了!


去掉第一层的 以太封装,去掉第二层的 PPP封装 ,剩下的就是网络层的。。。。。IP 等。。。。。。。。

RFC 你是看定了。。。。。。。。

  :) [/quote]


我是知道是这样的,可是我从45 00 看到source ip , destination ip,可是这根本不是ip头呀,它是不是把ip头给压缩了?还是怎么回事!
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-07-05 09:15
........................1...................2...................3
....0.1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
....+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
....|..VER..|.TYPE..|......CODE.....|..........SESSION_ID...........|
....+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
....|............LENGTH.............|...........payload.............~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

呵呵,这些数据我已经用sofeice看到了,可是
这里的payload是什么?是ppp包吗?哪里有ppp包的格式?
怎么把ppp的包转换成ip包?谢谢!
上一页
游客

返回顶部