Android app 协议分析小结
导语:
如今,大量数据在网络中上传输中,数据事关你我他的的隐私,行为, 这些数据若是被不法分子利用的话,是一件很糟糕的一件事情。如今网上流通的数据基本都是加密的,可是有的时候也是没有加密,因此咱们使用一块联网的App,咱们不只要考虑的App的美观,方便, 还要考虑其的数据的加密强度, 加密策略。否者你的数据很危险, 你很危险,如今网络安全并不安全。
可是这些都和这篇文章不要紧,这篇文章是介绍你们如何分析网络数据的,这就是咱们所说的协议分析。 协议分析的对象是网络中传输的数据包。笔者分析一些android app,总结了关于协议分析的一点当心得, 分享各位。
协议分析的基本步骤
1.
数据在发送前,加密; 接收后,进行解密, 因此协议分析的第一步就是找到发送/接收函数。
2. 基于第一步,咱们顺着数据加解密这条线索,咱们分析数据的如何加密算法,密钥,和 数据的意义,
这就是逆向分析的活。
3. 咱们根据加密算法,咱们就能找到密钥, 而后顺着密钥条线索,咱们分析密钥的生成过程。根据密钥的生成过程,咱们就知道,咱们数据可否利用。
因此协议分析的第一步也是最关键的一步就是找到应用层数据的发送、接收函数啦
发送/接收函数的定位
协议是分层, 并且每一层都有本身的发送函数,接收函数。
这里咱们关注的数据的应用层数据,咱们关注的应用层的数据的发送、接收函数, 对于android 代码实现有两种,基于java层和Native层。
因此数据的发送、接收函数既可能出现Java层, 也有可能出如今Native 层。
本文会持续更新...... 以实际案例分析如何定位发送函数, 下文是指协议分析的大纲。
Java层:
1. TCP/UDP协议传输:
2. HTTP协议
传输
3. 其余协议
方法: 找到对应协议使用类,而后搜索,排除,定位。
Native层:
1. TCP/UDP协议传输: 函数writev/readv
2. Http协议
传输:
3. mmtls协议
传输
:
4.
RTP协议
传输
:
5. SRTP协议
传输
:
6. xmpp协议传输
6. 其余协议传输
方法:找到相应协议的发送,接收函数,找到相应方法。