FeiQ傳输协议分析.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FeiQ傳输协议分析

我们常在局域网内用飞鸽进行沟通、文件传输。有天突发奇想,要是我能冒充某给人给另外一个人发送飞鸽消息,该多有趣?有了想法,就该去实现,不然就是空想了。。不过还真空想了段时间,但最后还是写出了个小程序,和大家分享下。? 要想冒充他人,首先得了解下飞鸽协议(见/questionhtml)。由于我们大多数人用的都是飞秋,所以就直接分析飞秋了。? 飞秋协议实际上飞鸽协议的扩展,比飞鸽稍微复杂点。首先看个简单的例子,我们以编程的方式,自己给自己发条消息。看代码和截图:? Python代码? ?import?socket?? ?udp=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)?? ?udp.connect((localhost,2425))?? ?udp.send(1:100:flyingzl:flyingzl:32:纵我不往,子宁不嗣音?~~)?? 51?? ?? ? 简单说明下代码:? 飞鸽运行时,会监听UDP和TCP的2425端口,所以我们首先要和本地建立UDP连接,TCP连接一般用来发送文件等。? 1:100:flyingzl:flyingzl:32:纵我不往,子宁不嗣音?~~是飞鸽的协议字符串,? 1表示版本号,100标识包号,flyingzl表示用户名,第二个flyingzl表示主机名,32表示发送消息,后面的表示要发送的消息内容。? 这是飞鸽的协议,后面我们会看到飞鸽和飞秋又有所不同。? 我们可以通过socket连机其他人的飞秋并给他们发送消息,但是通过socket发送出去的数据包会默认带上我们自己的ip地址和mac地址,怎么样才能修改这些数据包呢?? 有办法,windows上不是有wincap么,linux上不是有libnet么,它们都有python扩展,叫做sendpkt,直接调用就好了。关于怎么使用,可以看之前我的帖子?/topic/600032#1696365? 通过调用sendpkt,我们可以自己构造以太网数据包,自己定义源ip地址和源mac地址,这样就神不知鬼不觉地欺骗他人。。? 现在的问题是:怎么构建以太网数据包。? 由于飞秋发送消息是采用UDP协议,所以我们只需要构建一个UDP数据包,然后加上我们的内容就可以了。构建以太网数据包可以采用dpkt,非常方便。? 现在,我们用wireshark来分析飞秋的协议。。打开个飞鸽,点击刷新,就能看到wireshark捕获的数据包:? ? ? 飞秋上线时,首先会发送广播,告诉网内的其他飞秋,有新人上线,你们马上动起来,把他加入自己的好友,并问候他一下,这样,对方飞鸽里面就看到你的飞秋了。然后对方也会把自己的信息发给你,你的飞秋中也就有了他。? 我们把截获的代码拷出来,就是 1_lbt4_10#32899#002481627512#0#0#0:1289671407:Administrator:MICROSO-697TGLD:6291457: 别看这个字符串很复杂,其实它就是飞鸽的扩展,也是分为几段。? 1_lbt4_10#32899#002481627512#0#0#0 版本号,不过飞秋有很多自己的定制化,比如是否显示太阳等,32899就表示一个太阳和一个月亮,002481627512表示发送者的mac地址,后面的三个0不知道啥意思,有兴趣的童鞋好好分析下,和大家一起交流交流? 1289671407 也就是包序号了。? Administrator是用户名? MICROSO-697TGLD 是主机名? 6291457是命令字表示上线。还有一些其他的,比如288表示发送消息,6291457表示下线,还有晃屏啥的,大家有兴趣可以自己去分析。由于我只想发送消息,所以只需要修改下命令字为288即可。? 下面就是一个发送消息的命令字:? 1_lbt4_10#32899#002481627512#0#0#0:1289671407:Administrator:MICROSO-697TGLD:288:一日不见,如三月兮? Python代码? ?import?socket?? ?udp=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)?? ?udp.connect((localhost,2425))?? ?udp.send(1_lbt4_10#32899#002481627512#0#0#0:1289671407:flyingzl:flyingzl:288:一日不见,如三月兮)?? 86?? ?? ? 细心的同学已经发现,这次截图和上次截图显示不一样,上次截图显示的是飞鸽图标,这次却是飞秋图标。呵呵。。因为我们发送

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档