荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: oopilix (。。), 信区: Visual
标  题: [zz]oicq与UDP协议
发信站: 荔园晨风BBS站 (Sat Oct  4 19:15:38 2003), 站内信件


TCP/IP协议是整个互联网上数据传输的核心,OICQ也是基于TCP/IP协议的UDP协议
来实现的。下面来看看 OICQ是怎么样工作的呢?下面我将通过捕捉OICQ2000数据
包来进行分析OICQ2000的工作原理:(在WIN2000的安装包里有一个网络监视器,可
以用来监视网络上的各个数据包。)
打开WIN2000的网络监视器,然后开始监视网络数据包,然后打开OICQ,登陆后停
止捕获数据包。然后就可以进行分析了。下面这个数据包就是利用网络监视器捕捉
到的我的OICQ登陆的发送时的第一个数据包:
00000000 00 80 C8 EB 06 3B 00 80 C8 EB 25 18 08 00 45 00 .....;....%...
E.
00000010 00 78 48 8A 00 00 80 11 BC 3A C0 A8 00 02 CA 60 .xH......:....
.`
00000020 AA A5 0F A0 1F 40 00 64 AA 4E 02 04 05 00 15 F7 .....@.d.N....
..
00000030 2F 00 BD 77 9D F3 BE 2E 18 9A 86 DA 47 B4 83 41 /..w........G.
.A
00000040 3A A1 A5 60 89 AD 78 61 D7 EE 6A ED 5C 05 25 EA :..`..xa..j.\.
%.
00000050 17 95 B0 5C 3B 69 F1 1C 0F 5D C1 4C 91 FD C3 A8 ...\;i...].L..
..
00000060 1D 33 9C 86 2A 0F 12 11 EA A8 29 E4 AC 64 D4 D6 .3..*.....)..
d..
00000070 A4 96 4D 86 AD C2 19 F1 ED E9 FB 7B 74 99 B7 7A ..M........{t.
.z
00000080 C3 FB C2 B5 7D 03 ....}.

下面我将解析这个数据包。此个数据包可以分三段来解析:网卡地址段,IP协议段
和UDP协议段。

1、网卡地址段
00000000 00 80 C8 EB 06 3B 00 80 C8 EB 25 18 08 00
如上可所视00 80 到第一行的确良08 00为网卡地址段。开始的六个字节00 80
C8 EB 06 3B为对方服务器网 络适配器在内存中的地址,00 80 C8 EB 25 18 ,这
六个节嘛就代表我这台机子上的调解在内存中的地址。然后的08表示该数据传输协
议将用TCP/IP协议传输。00表示下面将用TCP/IP协议中的IP协议传输。

2、IP协议段
00000000 45 00 .....;....%...E.
00000010 00 78 48 8A 00 00 80 11 BC 3A C0 A8 00 02 CA 60 .xH......:....
.`
00000020 AA A5
如上所示45 00 到AA A5之前的代码都代表了IP段的内容。45代表此IP协议版本是
4.0版本,IP关长度是20字节。即从45到AA A5的20个字节。00 是代表IP包的优先级
。这里是平常的没有设等级。00 78转换成十进制是120。(倒过来算,0078=120(十
进制))表示此数据包的所有数据有120个字节。48 8A 代表IP协议的身份验证, 00
 00是IP协议的摘要,80传表IP数据包的生存时间。11这里很重要,表示此IP数据
段完成以后将由UPD协议来 代替,由此我们可以得知OICQ消息传播是通过UDP协议
来实现的。BC 3A是用来校检数据包的正确性的。C0 A8 00 02代表我的IP地址。用
计算器可以转化成192.168.0.2。CA 60 AA A5代有目的IP,即202.96.170.165。此
IP 数据段就完成了。余下的就是UDP数据段了。

3、UDP数据段
00000020 0F A0 1F 40 00 64 AA 4E 02 04 05 00 15 F7 .....@.d.N......
00000030 2F 00 BD 77 9D F3 BE 2E 18 9A 86 DA 47 B4 83 41 /..w........G.
.A
00000040 3A A1 A5 60 89 AD 78 61 D7 EE 6A ED 5C 05 25 EA :..`..xa..j.\.
%.
00000050 17 95 B0 5C 3B 69 F1 1C 0F 5D C1 4C 91 FD C3 A8 ...\;i...].L..
..
00000060 1D 33 9C 86 2A 0F 12 11 EA A8 29 E4 AC 64 D4 D6 .3..*.....)..
d..
00000070 A4 96 4D 86 AD C2 19 F1 ED E9 FB 7B 74 99 B7 7A ..M........{t.
.z
00000080 C3 FB C2 B5 7D 03
如上可看到此段即为激动人心的UDP数据段了。我们开始分析。0F A0代表我是通过
哪个端口进行发送消息的 ,这里可以换算成4000,即我用4000的端口进行消息发
送。1F 40代表腾讯的OICQ主机是通过哪个端口接收消息 ,这里可以换算成十进制
的8000。即腾讯的OICQ服务器是通过8000端口接收消息的。00 64代表此UDP数据段
的 总的字节是100。AA 4E是拿来校检UDP数据段的数据的。余下的数据就是此UDP
数据包传送的数据。而前面都是 一些控制协议。下面我们将解析这些数据。02 04
 05 00似乎是一些和版本有关的数。相同版本的数据相同的。 15代表登录服务器
,F7 2F 00可能是和一些顺序号有关。接下来的三个字节是从高到低放着你的
OICQ号。后面的16位字节是随机产生的16个字节的密钥,64字节口令加密内容。 最
后03表示UDP数据结束。一般是固定的值。
当OICQ的服务器收到此登录数据包以后通过验证,服务器将反馈给你一个数据包,
这里你的OICQ就上线了。
OICQ上线以后,每隔一段时间服务器向你发送一个数据包,上面有你好友的IP和号
码,用此来表示你好友在线的情。你同时也反回一个数据包给服务器。里面当然也
包括你的IP了。表示你在线。如果你没有反回一个数据包给服务器,那么就表示你
不在线了,这时你在你的朋友的OICQ上就不在线了。

OICQ消息传递原理
00000000 00 80 C8 EB 06 3B 00 80 C8 EB 25 18 08 00 45 00 .....;....%...
E.
00000010 00 60 1A D9 00 00 80 11 E6 54 C0 A8 00 02 3D A6 .`.......T....
=.
00000020 3B 0F 0F A0 0F A0 00 4C 3D 31 00 04 05 9D 62 DF ;......L=1....
b.
00000030 15 FF 62 37 81 9B 0B 1E 83 8F F7 DE 1A 67 E6 2B ..b7.........
g.+
00000040 35 28 E1 A9 ED B4 01 7C 92 B5 E4 2D E5 69 70 C5 5(.....|...-.
ip.
00000050 2E E1 22 FC AF 1C 25 4D E9 7C E8 BA FD F0 8B 87 .."...%M.|....
..
00000060 17 95 08 88 95 DD A4 1B 8D DC 36 85 0C 8E ..........6...
如上所示,也是基于上面的UDP协议。所不同的只是UDP传输的数据不同。根据服务
器发送来的给来的数据包知道你好友在线的IP,然后当你向好友传送消息的时候,
就是根据好友的IP通过UDP协议向对方发送数据包,对方机子上的OICQ收到的你的
数据包的时候就反馈一个数据包给你表示已经收到你的消息,否则的话就一直发送
。 等到对方反馈数据包为止。当到一定时候对方一直没有反馈数据包给你的时候
,就通过服务中转。中转的原理是这样的,将数据包给腾讯的服务器上,由服务器
又将数据包发到对方的机子上,这就是通过服务器中转的工作的原理。

00000020 00 04 05 9D 62 DF ;......L=1....b.
00000030 15 FF 62 37 81 9B 0B 1E 83 8F F7 DE 1A 67 E6 2B ..b7.........
g.+
00000040 35 28 E1 A9 ED B4 01 7C 92 B5 E4 2D E5 69 70 C5 5(.....|...-.
ip.
00000050 2E E1 22 FC AF 1C 25 4D E9 7C E8 BA FD F0 8B 87 .."...%M.|....
..
00000060 17 95 08 88 95 DD A4 1B 8D DC 36 85 0C 8E ..........6...
(聊天的时间和内容从数据包的偏移地址2B处开始)

好友间消息传送原理基于UDP协议,和登录的数据包一样。只不过所传输的UDP数据
为你和好友聊天的记录。如上面的数据段即为即为谈话时间,内容。这些数据都通
过加密的形式在网络中转输。
--

 ※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM:oopilix.bbs@bbs.szu.edu.cn]
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 61.144.235.39]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店