飞鸽传书协议分析
- 格式:ppt
- 大小:1.71 MB
- 文档页数:41


咱们常在局域网内用飞鸽进行沟通、文件传输。有天突发奇想,若是我能冒充某给人给另外一个人发送飞鸽消息,该多有趣?有了方式,就该去实现,不然确实是空想了。。只是还真空想了段时刻,但最后仍是写出了个小程序,和大伙儿分享下。
要想冒充他人,第一得了解下飞鸽协议(见)。由于咱们大多数人用的都是飞秋,因此就直接分析飞秋了。
飞秋协议事实上飞鸽协议的扩展,比飞鸽略微复杂点。第一看个简单的例子,咱们以编程的方式,自己给自己发条消息。看代码和截图:
Python代码
1. >>> import socket
2. >>> udp=,
3. >>> (('localhost',2425))
4. >>> ('1:100:flyingzl:flyingzl:32:纵我不往,子宁不嗣音?~~')
5. 51
6. >>>
简单说明下代码:
飞鸽运行时,会监听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,直接挪用就好了。关于怎么利用,能够看之前我的帖子
通过挪用sendpkt,咱们能够自己构造以太网数据包,自己概念源ip地址和源mac地址,如此就神不知鬼不觉地欺骗他人。。
湖北工程学院
大学生科研作品立项项目成果
项目名称: 基于TCP/IP协议的飞鸽传书
项目负责人:
项目合作者:
所在学院:
专业年级: 计算机科学与技术
湖北工程学院新技术学院
I 基于TCP/IP协议的飞鸽传书
摘要:当今,是一个信息高度发达的时代,计算机无疑已经成为网络通信的主角,生活节奏的加快,使得人们对通信速度的要求越来越高。对于在局域网内的计算机之间的数据交互,尤其是文件传输,通常,人们习惯于通过借助于移动存储介质,采取重复拷贝的方式来实现。这种传统文件传输方式存在诸多缺点,比如:消耗时间长,反复拔插存储介质过程繁琐;文件交互频繁,加速了计算机病毒的传播;虽然可以通过操作系统实现在局域网内的数据共享,但终因操作困难而使人们望而却步。
关键词:Internet、TCP/IP、局域网、传输、Microsoft Visual C++ 6.0
II 目录
1 系统概述.................................................................................................................... 1
1.1 开发背景.......................................................................................................... 1
1.2 开发环境.......................................................................................................... 1
发送文件目录主函数是SendDirFile(SendFileObj*obj)
该函数里面有五个分支判断分别对应的属性(即发送状态是)FS_OPENINFO FS_FIRSTINFO||FS_NEXTINFO FS_DIRFILESTART||FS_MAKEINFO FS_TRANSINFO FS_TRANSFILE各自做不同处理在上一分支做了处理后即将属性改为下一属性,等到下一分支处理。
在FS_OPENINFO里面
在FS_FIRSTINFO||FS_NEXTINFO里面如果是FS-FIRSTINFO属性,给发送对象的path添加”* “任意文件,避过开始在该目录下寻找第一个文件如果为FS_NEXTINFO属性则用FindNextFile向后循环查找目录下其他文件,这个函数第二个参数都是WIN32_FIND_DATA
然后开始在后面while循环查找所有(非目录的)文件,如果查找到第一个非目录即非.或者..的文件,将属性改为FS_MAKEINFO
在FS_DIRFILESTART||FS_MAKEINFO属性里面构造与该文件有关的一切属性,比如路径目录属性等等,构造好以后改属性为FS_TRANSINFO
在FS_TRANSINFO属性里面发送文件相关的属性比如目录路径属性如果没有发送完毕,
继续发送, obj->status = obj->dirCnt < 0 ? FS_COMPLETE : find == FALSE ?
FS_NEXTINFO : (obj->fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ?
FS_OPENINFO : FS_TRANSFILE;
根据这条代码进行判断此时发送对象状态,设置不同属性,如果dircnt目录数目小于0,发送完毕,设置为FS_COMPLETE,否则根据find属性判断是设置FS_NEXTINFO继续查找文件,如果查找完毕根据属性是否为目录是的话回到开始设置FS_OPENINFO属性,查找下一层目录,都完毕了,设置FS_TRANSFILE开始真正的文件传送
毕业论文(设计)
题 目 基于Java的局域网飞鸽传书软件设计与实现
系 部 计算机科学与工程系
专 业 计算机科学与技术 年级 2009
学生姓名
学 号
指导教师 四川大学锦江学院毕业论文(设计)
1
基于Java的局域网飞鸽传书软件设计与实现
计算机科学与技术
学生 指导教师
【摘要】 随着移动互联网的时代已经来临,社交应用广泛存在,这些应用加强了人与人之间的沟通;从小环境来说比如校园网,以及部分局域网在内的的各种交互也广泛存在。局域网之间的信息交互,并不一定要建立在互联网的基础上,本设计就是针对局域网这一环境,旨在通过设计基于Java程序设计语言的一个局域网内能够相互通信,和传输文件的软件,来增强自我实践能力,及了解通信软件的设计技术。
本设计是用Java语言编写的类飞鸽传书软件,可以实现简单的局域网内的主机之间的信息发送,以及文件的传输,实现较简单快速,主要采用了UDP中的数据报协议,Socket协议实现主机之间的通信。
【关键词】局域网 通信 传输 文件
四川大学锦江学院毕业论文(设计)
2 IP Messenger-software design and implementation used in LAN
based on Java
【Abstract】As the age of mobile and Internet is coming , social applications is widespread, and
these applications enhance communication between people at the same time; On the side from