蕉下客--)

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
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. 其他协议传输
 
方法:找到相应协议的发送,接收函数,找到相应方法。
 



posted on 2017-07-26 17:08  蕉下客--)  阅读(1787)  评论(0编辑  收藏  举报