区块链社交APP协议分析:Qbao

本文从协议解析的角度,对区块链社交应用Qbao进行简单分析,重点介绍聊天内容的还原。

在正文开始前,先作几点说明:

首先,Qbao不是钱宝,而是一款区块链社交APP,请钱宝粉勿扰。

其次,协议分析是一个枯燥的过程,如果只对分析结论感兴趣,可直接跳至文末查阅。

最后,本文的协议分析过程用到了破解逆向相关的技术,有感兴趣的朋友可以对这方面进行了解,后续也会对此进行介绍。

01

Qbao是什么

对一个APP进行协议分析的第一步,是了解APP是做什么的,了解APP的功能,从而对APP有一个全局的印象。

Qbao官网为https://qbao.fund,其官网介绍:

要点提取:去中心化,社交,区块链技术,目标是微信第二。

官网应用场景是这样的:

图中我们标出了重点:点对点通讯,可信任社交。

本质上,这就是一个IM应用,附加了部分数字货币相关的功能。

分析的APP版本:Android V2.1.1。

登录后界面是这样的:

聊天界面是这样的:

通过对这个APP的使用,可以将这个APP归入IM类,其具备文本聊天,语音视频通话等功能,本文中,我们分析其文本聊天功能,其它功能与文本聊天功能类似,如果各位朋友感兴趣,可以自行分析,共同提高分析技能。

后续几节,我们将先对聊天数据协议进行分析,从而提取聊天内容,再对APP内部结构进行剖析,看看它的本质。

02

Qbao报文情况

本节我们开始使用Qbao软件,并抓取其报文进行分析。

对APP进行协议分析抓包的一般过程是:

1、打开抓包APP进行抓包;

2、打开APP开始使用;

3、对每个功能操作对比报文的产生和动作,确定每个报文与动作的关系;

4、重点分析DNS,HTTP,SSL,TCP,UDP等主流互联网协议。

对Qbao软件,有如下DNS:

还有另外一个DNS,对应了一个HTTP对:

图中框出的IP PORT后续也会建链:

粗略一看,SSL呀,各位千万别被Wireshark所蒙蔽,Wireshark对SSL的判断很简单,是根据端口来判断的,是否是SSL,要根据报文内容具体情况具体分析,这才是一个协议分析人员的专业素养。

后续收发信息等产生的报文都在这条链内。

那好,我们看报文内容:

内容不是SSL,但也不是明文,那我们就试试看是否可以解密了。

03

Qbao协议破解

光看报文内容,如果报文没有明显的算法特征的话,我们是不可能获取到其加密算法的,另外,光有算法还是不够,还需要密钥,二者俱备,才是一个完整的解密方案。

算法和密钥,我们需要从APK安装包中去寻找答案。

使用Android逆向工具,可以从Qbao APK中提取出Qbao的实现文件,包括库文件及smali文件。

通过分析调试,最终得到聊天内容使用的加密算法:

密钥固定,算法是简单的异或。

其输入并非报文,而是报文的一部分,在TCP流中,Qbao数据按块划分,每块都有块头,内容为标记及长度,然后才是需要解密的数据,并且收发块头位数稍有差异,对比几个报文即可找到规律,并且收发的报文稍有差异。

根据算法尝试解一个发送文本单聊消息报文:

根据算法尝试解一个接收文本单聊消息报文:

根据算法尝试解一个接收群聊消息报文:

这条消息链内的数据基本就解出来了,然后根据各种标记对内容进行提取就完成了协议解析的过程。

其它相关功能解析类似,在此就不展开了。

04

Qbao软件结构

在使用逆向工具分析APK后,可以看到Qbao实现代码的大概情况。

使用的库文件:

软件功能相关的实现:

仍然是软件功能相关的实现:

经过分析发现,Qbao大量使用了RongIM相关的接口,例如聊天,通话等功能,RongIM相关的smali与Qbao命名的相关smali在不同的目录下,推测二者为不同的组织编写。

通过搜索,可以发现,RongIM相关的so和smali为融云提供的接口,并且Qbao部分功能直接使用融云的服务器。

因此,Qbao是在融云的基础上进行二次开发得到的一个应用,主体功能为融云提供,区块链相关功能属于二次开发。

在实现代码中,找到了一段和其代币相关的加密的过程。

在APK内寻找区块链相关的去中心化技术和点对点技术,很遗憾,没有找到,所有操作,都是与服务器交互,没有用户与用户之间的连接过程。

因此,这是一个伪区块链APP,技术薄弱,目的是种韭菜割韭菜。

05

Qbao分析结论

1、Qbao是一个伪区块链APP,功能为临时拼凑;

2、Qbao社交相关功能,如聊天,视频等功能,均为简单的异或加密,相当于裸奔;

3、Qbao没有去中心化,没有点到点,主页所称的亮点都有待实现;

4、Qbao协议未考虑安全性。

欢迎关注,共同探讨协议分析技术。

长按进行关注。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180115G03NTY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券