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

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

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

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

最新喜欢:

baoyibao99baoyib...
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-04 21:29
知道了,前面是以太网封装,8863,8864,后面是ppp的包,不过我对ppp不了解,怎么把ppp的数据恢复成ip包?哪位知道,请指点,或者哪位知道哪有这方面的资料,呵呵,没让我看RFC哦,太长了!
谢谢啦 :)

//苦命钻研中...
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-04 21:50
奇怪,不可能吧。应该都是IP包头吧。
我思故我在,脑袋不会坏.
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-04 21:55
不是,我看了收到的包,是pppoe的包,有mac头,不过里面的protocol字段是8863 or 8864(一是发现,一是会话),我还向里分析了,有ver, type ,code ,session_id,length,之后好象就是ppp的包了,我对ppp不太了解,所以正在看它的结构呢!

gjp了解ppp吗?或者哪有关于pppoe的文章,最好是pppoe的包与ip包的相互转换的文章或程序!谢了!
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-04 22:14
不是,我看了收到的包,是pppoe的包,有mac头,不过里面的protocol字段是8863 or 8864(一是发现,一是会话),我还向里分析了,有ver, type ,code ,session_id,length,之后好象就是ppp的包了,我对ppp不太了解,所以正在看它的结构呢!

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


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

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

  :)
[color=red]大头鬼! :P[/color]
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-05 09:08
   你还是看一下RFC2516吧。
PPPoe的以太网帧如下:
......................................1
..................0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
..................|.......DESTINATION_ADDR........|
..................|..........(6 octets)...........|
..................|...............................|
.................. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
..................|.........SOURCE_ADDR...........|
..................|..........(6 octets)...........|
..................|...............................|
..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
..................|    ETHER_TYPE  (2 octets)     |
..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
..................~...............................~
..................~...........payload.............~
..................~ ..............................~
..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
..................|...........CHECKSUM............|
..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
其中的ETHER_TYPE为either 0x8863 (Discovery Stage) 或 0x8864
   (PPP Session Stage).
其中的PayLoad如下:
........................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.............~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于: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包?谢谢!
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
7楼#
发布于: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头给压缩了?还是怎么回事!
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于: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]
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于: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]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-07-05 11:38
magicx兄,你知道它的怎么压缩的吗?
是不是也把ip数据给压缩了,还是只压缩了ip头?
tcp头呢?
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于: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分
12楼#
发布于: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分
13楼#
发布于: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分
14楼#
发布于: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分
15楼#
发布于: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分
16楼#
发布于: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分
17楼#
发布于: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]
sgren
驱动牛犊
驱动牛犊
  • 注册日期2001-12-04
  • 最后登录2004-10-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-07-05 18:03
封装在PPP包中的IP数据包的协议类型代码为0021,0021后面就是IP包内容,不过这时,IP的源地址是建立PPP连接时动态分配的IP地址(与本机静态IP地址不同),这是否是造成你没有找到IP地址的原因呢?
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于: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了吧。
我思故我在,脑袋不会坏.
上一页
游客

返回顶部