起因

不知道从什么时候开始,同事开始在飞秋上发闪屏振动了,后来变本加厉,成了每日一闪。老闪回去也比较麻烦,作为程序猿呢,有没有什么偷懒的办法呢?(同事负责用户体验,不大懂编程)。然后尝试了以下思路:

UI自动化

利用UISpy查看飞秋聊天窗口,悲催的发现找不到发送闪屏振动的按钮。

模拟鼠标事件

准备使用mouse_event发送鼠标事件来模拟闪屏振动的按下。但是一想,每次闪屏振动按钮所在的位置不一样,要是移动窗口或者改变窗口布局,都得重新设置坐标,麻烦,遂弃之。

伪造网络报文

以前就知道WinPcap和Wireshark,恰好前段时间又在博客园看到[c#]记一次实验室局域网的ARP欺骗 - Yosef Gao - 博客园,了解到C#下也有了相关的解析和发送工具。果断开始这个方案。

飞秋报文数据猜想

飞秋网络传输

我是知道飞秋聊天是用UDP,端口默认为2425。不知道也没关系,打开飞秋->设置->网络设置,然后你就会发现,飞秋已经明白的告诉我们了。

闪屏振动

首先打开的WireShark,设置过滤条件为udp.port==2425,然后向测试机发送一个闪屏振动试试看。

发现有两条消息,其中一条是本机发给对方的,另一条是对方发给本机的。

再发送几次闪屏振动,我们就可以大致猜出飞秋闪屏振动报文的规律,发送的报文格式为1_lbt6_0#128#(发送方MAC地址,16位)#0#0#0#4001#9:(猜测应该是序号, 具体不清楚):(发送方用户名):(发送方主机名)209:,收到的报文为1_lbt6_0#128#(发送方MAC地址,16位)#0#0#0#4001#9:(猜测应该是序号, 具体不清楚):(发送方用户名):(发送方主机名)210:。将发送的闪屏振动报文用WinPcap模拟数据包,居然在测试机上收到了闪屏振动(原先还以为猜测的序号字段会有影响)。

信息

向测试机发送一条信息后,发现有几条消息。

经过比较报文长度和来源之后,猜测其他几条较短的来自本机的报文为发送正在输入,停止输入等消息,而较长的为发送的信息。经过验证之后,也确实如此。而飞秋的信息报文应该是加过密的,无法直接从中猜出内容。

表情

表情与信息基本类似,但是表情貌似是经过压缩的。

文件

一般文件都会通过TCP传输,经过验证。发现果然如此,飞秋要发送的文件列表是通过UDP进行传输,而具体文件内容是通过TCP传输。

在UDP传输中,本方发送两条报文,对方发送两条报文。基本本方发送的第二条报文可以看到文件名。

在TCP报文中,除了TCP连接建立的三次握手和连接断开的四次握手以外,在其余的本机发送的报文中,可以清楚的看到报文的内容。

这是文本文件:

这是二进制文件:

二进制文件在UltraEdit查看:

说明

因为主要兴趣在研究闪屏振动,对其余功能只是简单查看了一下,并未深入研究。

代码实现

软件界面

最开始做成模拟闪屏振动但不需要填写任何报文信息,但是登录用户名无法通过网络取得,再加上也可以通过在发送报文字符串中填写其他从WireShark中复制过来的报文字符串来模拟其他报文(比如信息和表情),就做成了这种形式。

注意事项

要使用PacketDotNet.dll和SharpPcap.dll,需要安装WinPcap(我是直接安装了WireShark,里面含有WinPcap)。

下载链接

博客园:FeiqCheater

趣事

  1. 最开始时未加睡眠时间,一个while(true)发送闪屏振动报文,直接把设计师的飞秋给玩死了,多次重启无效,丫还以为是自己电脑出问题了。现在才明白DOS(拒绝服务攻击)的可怕。
  2. 可以伪装成其他人发送闪屏振动报文。 我就经常伪装成他人给设计师发闪屏,也伪装成设计师给他人发闪屏。
  3. 把自己的飞秋退出后,对方在收到飞秋的报文后,仍然有响应。
  4. 后来设计师学聪明了,经旁人指点,在飞秋中关闭了闪屏。

最新情况

进展

  1. 在网上可以查到一部分关于飞秋消息格式的消息,比如将飞秋攻击进行到底 - 龙月 - 博客园(粗看了一下,飞秋版本不一样),同时传说也可以直接发送飞鸽传书未加密的报文,但我并未经过验证。如果确实如此的话,则可以模拟伪造飞秋消息。
  2. 我想到可以在本机上模拟飞秋发出刷新好友列表的消息,然后再解析收到的包,这样就可以分析出好友列表,包括每个好友的用户名,IP地址,MAC地址等信息。这样模拟闪屏振动就可以不用输入任何信息了。

挑战

  1. 另一个笔记本给我弟了,单台电脑不好模拟。
  2. 貌似WinPcap不能拦截目标非本机的报文,也就是伪造的消息只能由本机伪装成其他人发出去一次,而不能伪造成他人和目标方进行交谈。(以前我利用改IP、改名称、改MAC的方式伪装成领导捉弄过其他同事,说公司准备给他加工资,让他傻乐)。
  3. 貌似WinPcap接收到包之后也不能将包丢弃。
  4. 懒癌犯了,不想去做这些事了,这才是最主要的原因。

利用WinPcap模拟网络包伪造飞秋闪屏报文的更多相关文章

  1. wireshake抓包,飞秋发送信息,python

    http://wenku.baidu.com/link?url=Xze_JY8T15pqI9mBLRpTxWF2d6MP-32xb6UwuE6tsUmitRDheJe-Ju87WlDEDBGuI5MF ...

  2. DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器

    DNS反射放大攻击分析 摘自:http://www.shaojike.com/2016/08/19/DNS%E6%94%BE%E5%A4%A7%E6%94%BB%E5%87%BB%E7%AE%80%E ...

  3. 漏洞大爆光:QQ漏洞、飞秋漏洞、360浏览器劫持…

    随着互联网应用的高速发展,信息安全已深入到诸多领域,前段时间发生的"Struts 2"漏洞及"心脏出血"漏洞影响了二亿中国网民的信息安全.原因是程序猿缺少细致的 ...

  4. win7系统下的飞秋发送文件失败问题

    飞秋发送文件失败这个问题大多数是由防火墙引起的1.检查windows自带的防火墙设置,在左侧的"允许程序通过windows防火墙"查看飞秋是否存在,不存在则增加之,公网.专网都勾选 ...

  5. winpcap抓包原理

    winpcap抓包原理 WinPcap 是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows 操作平台上来实现对底层包的截取过滤.WinPcap 是 BPF 模型和 Libpcap 函数库在 ...

  6. [转] Android利用tcpdump抓包

    原文链接:http://mysuperbaby.iteye.com/blog/902201 Android利用tcpdump抓包 博客分类: Android AndroidAccessGoHTML  ...

  7. Swing做的非阻塞式仿飞秋聊天程序

    采用Swing 布局 NIO非阻塞式仿飞秋聊天程序, 切换皮肤颜色什么的小功能以后慢慢做 启动主程序. 当用户打开主程序后自动获取局域网段IP可以在 设置 --> IP网段过滤, 拥有 JMF ...

  8. 针对局域网IM飞秋(feiq)的开发总结

    先上代码了,通过java代码群发feiq消息: package com.triman.constant; import java.io.IOException; import java.io.Unsu ...

  9. 在LaTeX中利用preview宏包和tikz宏包生成单图pdf

    有时候我们利用tikz宏包画出的图片后,只想生成一个单图pdf,而且pdf的页面大小与图片相同,以便于以后再次用latex插入. 可以与preview宏包进行搭配,页面大小由图像大小决定,可以通过改变 ...

随机推荐

  1. MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别

    InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是 ...

  2. SAP ALV标准范例程序介绍

    下面介绍几个学习ALV的SAP自带标准程序实例 1. BALVSD06 : Output flights (simple version + save)这是该系列范例最简单的一个,建议以此入门.使用的 ...

  3. 关于ApplicationPoolIdentity

    一直以来IIS中的网站默认都是以network service在运行,但是从IIS7开始,默认会以ApplicationPoolIdentity运行. 这个账户比较特殊,是一种虚拟帐户,你无法在计算机 ...

  4. 用TextPaint来绘制文字

    TextPaint是paint的子类,用它可以很方便的进行文字的绘制,一般情况下遇到绘制文字的需求时,我们一般用TextPaint所提供的方法.开始学习如何绘制文字之前,我们必须要先了解下androi ...

  5. GridView总结一:GridView自带分页及与DropDownList结合使用

    GridView自带的分页功能实现: 要实现GrdView分页的功能 操作如下: 1.更改GrdView控件的AllowPaging属性为true. 2.更改GrdView控件的PageSize属性为 ...

  6. Stooge排序与Bogo排序算法

    本文地址:http://www.cnblogs.com/archimedes/p/stooge-bogo-sort-algorithm.html,转载请注明源地址. Stooge排序算法 Stooge ...

  7. 实验:传输层:UDP协议 学习笔记

    一.传输层协议 从之前介绍的网络层协议来看,通信的两端是两台主机,IP数据报首部就标明了这两台主机的IP地址.但是从传输层来看,是发送方主机中的一个进程与接收方主机中的一个进程在交换数据,因此,严格地 ...

  8. nginx安装过程,报错处理:make[1]: *** [objs/addon/src/bson.o] Error 1

    nginx安装过程中,经常会有各种错误: 具体安装步骤这里不做说明,网上一搜大把: 主要分析安装过程中遇到的问题 在make编译的时候,若报如下错误: cc1: warnings being trea ...

  9. python基本数据结构-字典-方法

  10. 人生导师——如何学习C++的Windows方向

    原来发在百度上,今天被人挖坟挖出来了,我就再贴出来吧. -----------------------有什么说的不对的地方---------------------- 本文原创,转载请注明出处并保持文 ...