随便谈谈Android的逆向工程

Android_Robots_Banner
Standard

假期里闲来无事,就开始倒腾。

所谓(软件的)逆向工程,听起来很貌似高端,它实际上就是根据软件运行后的表现进行逆向分析和研究,从而推理出该软件的处理逻辑、功能结构等要素,以制作出功能相近,但又不完全一样的产品。它的目的、也是难点在于,在不能轻易获得源代码的情况下下,直接从对软件的分析,推导出它的设计原理。

为了让逆向工程的结果看起来有点用,我选了《么么答》这款应用作为“实验对象”。

《么么答》是人人网旗下的一款社交教育类问答游戏,拥有海量题库。可以与好友对战答题或是进入天梯PK。

我猜应该有很多人玩得比我还熟,就不多作介绍了。


初体验

逆向工程的第一步是要“使用”这款软件,熟悉它的流程。把所有能点的按钮啊、菜单啊都点一遍,知道它有哪些功能。当然,重点就是测试答题的过程了。稍试几次,便容易发现一个清晰的答题的流程:

  1. 选择分类
  2. 读取题目
  3. 互相答题
  4. 最终结果

对一般用户来说,所能体验到的东西也就这些了。但对于逆向工程来说,还远远不够,要从这个看似简单的流程中读到更多信息。


Continue reading