安卓&android工程逆向记录

关于app的背景

        这是记录去年这个时期的工作,当时做过一段时间的安卓逆向。特此记录一下当时破解的流程。希望对大家有一定的帮助,这也是我所希望的。当时的app环境是一个下层带有so的动态库文件,它将classes.dex加密并转移了。所以我们分析的重点在于so文件。最后找到突破点实现了app的逆向工程。

使用的工具以及环境

       该实验是在Linux环境和Windows环境下同时进行的。使用的是Ubuntu 12.04和Windows 7操作系统,主要工具是还有就是签名工具,安卓助手等。Linux上面主要使用的是一些辅助命令工具,如file、readelf、nm、C++filt、strings。在Windows环境下面主要使用的工具是IDA-Pro工具,做这个的都知道,这个工具是很强大的。

面临的难题

  • arm汇编语言的不熟悉
  • so动态库中的调试符号被删除,函数不好确定。

Linux环境搭建


扣app数据

       这里使用coredump方法对手机里面的app扣出来,这里能扣出来是因为android的app在手机内存里面是连续存放的,而不是分段存在不同的地方。这里用的手机最好是使用的是源谷歌版的android系统,而不是经过修改过的系统,如米系统等。
步骤如下图所示:


分析扣出来的数据

       在Linux环境下,使用strings -t命令,可以通过string字符串的偏移找到我们要截取的开始部分,通过计算得到整个app的大小,在classes.dex的头部已经给出了各个参数的意义以及值。

分析:


取代码:


总结

扣取整体步骤



问题

      手机选取的问题:

        如果遇到so文件里面有MD5校验和的对比,导致不能继续进行。这时使用IDA分析大概条件判断的位置,将有条件跳转修改成无条件跳转。修改方法是使用编辑器,直接暴力破解,跳过这个步骤。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值