前面已经安装好了android额开发环境,包括sdk这些。其实sdk中的工具就满足我们简单进行android逆向的需求了。当然如果要完成更加复杂的逆向任务,就需要更加方便的工具了。
做android的逆向工作,离不开各种各样的工具。有比较大的集成逆向平台,也有各种体量小的插件或者小工具。这里列举一些个人觉得好用的。
这里先介绍java层的一些工具。native层的我们先不介绍。
我们先介绍一些集成工具,这些工具大多贯穿整个逆向流程,用好了能极大加速我们的逆向过程。
使用这些工具的前提是已经搭建好了开发逆向环境。必要的jdk,android sdk等已经安装完成并且配置好环境变量。
1、android studio。这个不用多说,开发也是需要用到的。以及后面的一些smali代码的动态调试,也是可以使用android stduio。
2、android killer。这个工具可以说是我的入门神器了,虽然现在没有人维护它了,但是毫无疑问还是用起来很方便的。首先是界面友好操作简单,集反编译回编译,签名等整个流程。所以到现在为止,我拿到一个apk之后都会先用android killer进行一次反编译,如果不成功再尝试别的方法或者工具。但是随着防护技术以及开发者意识的加强,很多apk都会跟这些工具做对抗。尤其是反编译,越来越发现使用android killer反编译容易失败了。但是就个人来说,我喜欢用这款工具是因为它的搜索功能比较好用,起码用得比JEB顺手多了。
3、JEB。这个也是推荐的神器。也是集编译,反编译,调试于一身的集成环境。但是这个工具是需要购买的,反编译的结果当然相对来说要更加准确,而且对机子的要求也比较高。
4、MobSF。这是个android的动态分析框架。当然也支持静态分析,web API 测试。下载地址:https://github.com/MobSF/Mobile-Security-Framework-MobSF
接下来介绍一些小工具,这些小工具通常是功能单一,体量小。但是好在灵活易用。一般就是一个exe文件,一个jar包之类的。对于这种小工具,我一般是使用一个文件夹做统一分类,然后使用一个bat脚本来调用这些工具。再把这个工具目录添加到path下。这样就能更快地使用这些工具,而不用在使用的时候到处去切换目录。
1、apktool。这个工具用于反编译和回编译,而且很多集成环境的反编译核心,其实就是用的这个工具。如果有的集成环境反编译功能失效,说不定重新更新这个apktool就可以了。下载地址:https://github.com/iBotPeaches/Apktool
2、jd-gui。这是一个jar 的查看工具。可以将.jar 、.war、.class这些文件翻译成源码便于查看。而且这个工具很小,运行速度也快。当然有点麻烦的是我们的android中,java代码大多是是打包成dex而不是jar,所以更多时候,需要我们做一次转化,比如说将dex转为jar。
这里说到了就再介绍一个工具吧。这个就是讲dex转化为jar 的工具。dex2jar。下载地址:https://github.com/pxb1988/dex2jar 这个工具提供了dex 与jar 之间的互相转化。而且这种转化是无损的,这意味着转化后的jar可以作为sdk文件在其他程序中调用。
类似jd-gui这样的,但是无需经过转化直接查看java代码的工具有没有?有的。这里推荐两个。
一个是jadx,这个工具可以直接打开apk或者dex,然后查看到对应的java伪代码,个人其实是比较倾向于使用这个工具的,感觉用这个工具翻译的java代码可读性要强一些。
另一个是bytecode-viewer。与jadx类似的,也支持直接打开dex和apk文件查看java的伪代码。
3、jarsigner.exe
这个工具一看名字就知道,是用于签名的。而且这个工具是java sdk自带的。一般在 \Java\jdk1.8.0_181\bin 目录下。用于给apk签名。当然外面还有很多签名工具,但是这个工具可以使用我们自己的签名证书进行签名。也是我比较常用的。
4、android monitor
这个工具大家估计都很熟悉,因为是android sdk自带的。 用于查看android设备的当前状态,非常好用。
此贴用于收集一些用得顺手的工具,会不定期更新。但是限于篇幅,工具的用法不会在这说明
5、Android逆向助手
这其实是一款工具集,将逆向过程中经常性使用的一些工具都整合到一起了比如我们上面提到的apktool,dex2jar,jd-gui这些工具,然后提供一个exe进行调用,更加方便我们操作。当我们解压开这个工具,进入到lib目录下就能发现它包含的这些小工具了,当然,如果某个功能失效了,我们可以手动去更新下lib下的对应模块。
6、ApkScan-PKID 查壳工具
是一款APK查壳工具PKID,程序是一个jar包,体积很小使用也方便。可以查网上目前流行的安卓apk的加密了什么壳,同时分享dex节信息和签名信息等,能够检测市面上主流加固。