发新帖

如何通过逆向快速开发一个Android APP

[复制链接]
5972 0

首先,准备工具:

1.Androidkiller

2.jadx0.6.1

按照需求找类似的APP,用AndroidKiller查壳工具看下APP有没有加壳,如果有壳可以使用脱壳神器drizzleDumper工具,这个工具是开源的,大家想看源码可以去下载:https://github.com/DrizzleRisk/drizzleDumper;当然这个工具网上有人已经分析了原理,这里就大致在说一下,他的原理就是一点:root设备之后,通过ptrace附加需要脱壳的apk进程,然后在脱壳的apk进程的内存中进行dex文件的特征搜索,当搜索到dex文件时,进行dex文件的内存dump。

其实这个思路和之前介绍的ZjDroid,DexExtractor等工具原理还不太一样,之前的脱壳工具都是基于hook拦截系统的加载dex函数进行dump出dex的。但是这个工具是基于附加目标程序,寻找内存段具备dex文件头部信息进行dump的操作。这个思路也是非常好的。我们也知道dex的长度是保存在头部信息中的,所以只要在内存段中找到dex的头部信息,然后解析长度,有了起始地址和长度,那么就可以获取内存中的完整dex文件了。(对脱壳是否成功,这个估计有一定的概率性)

drizzleDumper工具使用:(以com.qihoo.freewifi为例)

在cmd控制台的条件下,执行cd命令进入到存放drizzleDumper的文件夹,然后将drizzleDumper文件推送到android手机的/data/local/tmp文件夹下并赋予可执行权限,然后根据每种android加固的特点,选择需要脱壳的apk和drizzleDumper运行的先后顺序,调整能够脱壳成功的过程。这里使用的com.qihoo.freewifi为例,先运行com.qihoo.freewifi程序,然后adb shell条件下su提权,\**执行drizzleDumper的脱壳**操作,等待2秒。

  • cd xxxxx/drizzleDumper

  • adb push drizzleDumper /data/local/tmp

  • adb shell chmod 0777 /data/local/tmp/drizzleDumper

  • adb shell #进入androd系统的shell

  • su #获取root权限

  • ./data/local/tmp/drizzleDumper com.qihoo.freewifi 2 #执行脱壳操作

     最好不要找经过混淆的APP,这样增大阅读代码难度!一般 Apk 在发布出去之前,都是会被混淆的,这基本上国内 App 的标配。这样一个类,最终会被混淆成 a.b.c ,方法也会变成 a.b.c.a() ,这样其实非常不利于我们阅读。我们很难看到一个 a.java 的文件,就确定它是哪一个,还需要根据包名来区分。

而 deobfusation 功能,可以为它们其一个特殊的名字,这样它在这个项目中,名字就唯一了,方便我们识别和搜索。

这个功能可以在 Tools -> deobfusation 中激活。接下来来看看它的效果。deo-beforedeo-before开启 deobfusation 之后的效果如下:deo-afterdeo-after可以看到,a 变成了 p003a。

按照步骤一步步来,要有耐心,不要一心急把整个都COPY到时候一大片爆红,瞬间就没了心情!

1.先新建一个项目.

2.用AndroidKiller编译找到的APP,找到res资源文件,在Window Explorer外找到文件,整个COPY.

3.在工程信息里面找到程序路口,copy下名字.

4.用jadx打开APP,Ctrl+N快速搜索找到程序入口!

5.将整个类copy到自己的项目,记得在AndroidMainFest.xml注册!这是会有一大片红,不要急,耐心!跟着我一步步来!

6.首先看看第一个BaseActivity,这个很明显是缺少父类class,来到jadx ,Ctrl+N搜索baseActivity,找到该类整个copy,好了问题解决!,按照类似的方法,哪里错误点那里,!大部分原因是因为缺少类或则包没有导入.一天时间整个框架就搭好了,差不多一周时间就把整个项目完整的COPY出来了.然后就可以坐在那里抖腿看看论坛啥的!

AS里有些比较实用的快捷键Alt+j批量修改,ctrl+f查找,F2找到错误的信息,shift+shift全局搜索!

7.copy也是有技巧的,按步骤来,首先先把布局主界面做出来,先不要实现逻辑,做出一个大概的框架,然后具体功能一个模块一个模块去实现,千万不要急,要不然很容易出错!把自己搞得晕头转向,还有一些找不到类的情况,一般是用了第三方的框架,去官网上下框架就好了!

因为项目已经做好,有些问题一是半会想不出来,自己也懒得截图,所以写的有乱,打字好累,本人比较懒!后期有时间我会慢慢修改!

3.png (76.7 KB, 下载次数: 0)

3.png

2.png (21.99 KB, 下载次数: 0)

2.png

1.png (116.63 KB, 下载次数: 0)

1.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表