您的位置:首页 > 移动开发 > Android开发

Android APK反编译之工具篇

2017-01-24 14:00 239 查看

APK反编译之工具篇

反编译工具

介绍几个比较常用的反编译工具

ApkTool 工具 主要是对apk进行压缩和解压缩,可以提取出apk文件的dex文件或者反编译成smali格式文件。

源码及下载地址!APKTool

Jadx 工具对于一些未加壳的APP可以直接使用 Jadx 工具打开APK查看里面的源码,相比ApkTool反编译出来的smali,它直接出来的是java语言形式的,可读性更高,但是很多apk都混淆了,它的搜索功能比较弱。支持apk和jar压缩格式.源码及下载地址!Jadx

dex2jar 将 apk或者dex Android格式转换成jar文件,这样可以使用jd-gui工具查看(jd-gui只支持jar压缩或者class以及zip文件的查看).源码及下载地址!dex2jar

jd-gui 应该叫java Decompiler 工具。目前只支持 jar,class,zip等文件的查看,不支持dex文件查看。可能定位就是Java的吧。!jd-gui

classyshark 谷歌大发好啊,这个是谷歌开发的反编译工具,最大的优点就是它能支持查看libs so库的函数链接及相关内容。主要是对apk的方法数,类总数做统计的。但是问题在于,只显示了方法,无法查看方法内的逻辑。源码及下载地址!ClassyShark

平时使用问题

以上的工具,不一定说只选择一种工具。在拿的一个apk的时候,优先可以使用 Jadx 工具,因为它可以直接打开apk,并且发编译出来的代码可读性更高。如果这个工具反编译出来的内容有问题,或者apk本身做了针对它的处理,再选择ApkTool工具进行解压缩,然后分析smali代码,这个就需要你对smali有一定了解。或者你可以提取dex文件通过dex2jar工具转换成jar,再用jd-gui查看也是可以的。我个人比较喜欢直接看smali,同时加上全局搜索等分析,一般情况下是能够达到目的的!

关于加壳应用反编译问题

对于加壳应用,上面的提到的工具都是无法反编译的。目前针对加壳应用,采用dump内存dex方式。使用的是基于内存搜索的Android脱壳工具drizzleDumper.以及 strazzere 大牛的android-unpacker.这些都可以将大体的的apk反编译出来。

动态apk注入方式

说到动态apk注入这个,在apk运行获取运行的类信息,这个就需要提到Andbug,这个看起来很牛逼的感觉,但使用起来还是不太顺手,经常我的真机跑不起来,有待进一步研究。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息