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

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


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


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


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


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


01

Qbao是什么


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


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

0?wx_fmt=png


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


官网应用场景是这样的:

0?wx_fmt=png


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


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


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

登录后界面是这样的:

0?wx_fmt=jpeg

聊天界面是这样的:


0?wx_fmt=png


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


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


02


Qbao报文情况


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

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

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

2、打开APP开始使用;

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

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


对Qbao软件,有如下DNS:

0?wx_fmt=png


是对域名www.aethercoder.com的解析,这个域名对应的IP后续承载的是SSL,根据分析,目前是无法解密的。

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

0?wx_fmt=png

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

0?wx_fmt=png

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


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


那好,我们看报文内容:

0?wx_fmt=png

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


03


Qbao协议破解


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


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


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


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


0?wx_fmt=png

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

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


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

0?wx_fmt=png

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

0?wx_fmt=png

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

0?wx_fmt=png

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


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



04


Qbao软件结构


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

使用的库文件:

0?wx_fmt=png

软件功能相关的实现:

0?wx_fmt=png


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

0?wx_fmt=png


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


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


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


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

0?wx_fmt=png


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


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



05


Qbao分析结论


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

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

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

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


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

0?wx_fmt=jpeg

长按进行关注。





原文地址:https://www.cnblogs.com/protosec/p/11673362.html