Android反编译之一--反编译的工具和方法

如果看到一个好的应用,作为一个开发者,是不是很有兴趣去分析它是怎么实现的。尤其是Android应用,通常都是通过反编译来分析其中的结构。

分析一个Android应用,一是Android的资源,另一个就是源码。

资源工具

Apktool

Apktool是目前强大的反编译工具,可以反编译出apk,解析出resources.arsc, classes.dex, 9.png. and XMLs资源,Smali文件,并且可以重新进行打包

工具地址:http://ibotpeaches.github.io/Apktool/

使用方式:

1
apktool d test.apk

反编译出apk

1
apktool b test

对反编译出的进行逆向apk

源码工具

dex2jar

从Apk中解压出class.dex,使用dex2jar进行源码解析。

1
dex2jar class.dex

在当前目录生成classes.dex.dex2jar.jar,可以在jd-gui中查看源码。

dex2jar:https://github.com/pxb1988/dex2jar
jd-gui下载:http://jd.benow.ca/http://jd.benow.ca/
jd-gui源码:https://github.com/java-decompiler/jd-gui

enjarify

这是是谷歌出品的一款反编译工具,它可以将dalvik字节码转化成 java 字节码。
使用方式:

1
2
3
enjarify yourapp.apk
enjarify classes2.dex
enjarify yourapp.apk -o yourapp.jar

跟dex2jar相比,成功率更高,具体的查看:why-not-dex2jar

android-classyshark

最近谷歌出的一款查看和分享android文件(APK/Zip/Class/Jar)的工具

整合工具

onekey-decompile-apk

一步到位反编译apk工具

参考

yeungeek wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
曾经有一份打赏放在我面前,我没有珍惜.如果上天给我再来一次的机会,我会说三个字:赏死我.