Android反编译工具与反编译步骤及常见问题
Android代码混淆很大程度上就是为了别人反编译我们的代码,用反编译工具也可以测试我们的代码是否混淆成功。
“工欲善其事,必先利其器”,先介绍一下反编译的工具:
apktool、dex2jar和jd-gui,这里是下载链接:Android反编译工具集
大概的用法与步骤是:用apktool可以获得apk中的资源文件,用dex2jar可以获得apk中包含java代码的jar包,通过jg-gui可以打开jar包中的java代码。
反编译开始:
一、反编译资源文件
解压工具包,打开apktool文件夹,看到下图文件:
将需要反编译的.apk文件也放在这个文件夹里,打开命令行界面(cmd),定位到apktool文件夹(用cd命令)
接着输入命令:apktool d -f test.apk(这里是需要反编译的apk的名字) -o testfile(这个是反编译出的资源文件需要存放的文件夹的名字)
注:此处有一点需要注意,网上有说输入命令:apktool.bat d -f test.apk test的,但是运行之后会提示错误:input file was not found or was not readable,这是因为版本原因导致的报错,用上面的apktool工具和命令,就不会出现这种情况了。
运行结束后, 再来看文件夹,会发现多了一个testfile文件夹,里面有反编译出的资源文件。
二、反编译源代码
打开压缩文件后,找到里面的dex2jar-0.0.9.15文件夹。
将需要反编译的apk文件后缀名改为.rar或.zip,解压获得一个文件夹, 打开这个文件夹
将文件夹里面的classes.dex复制到dex2jar-0.0.9.15文件夹中。
在命令行定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex,运行
运行结束后,会发现原本的目录下多了一个classes_dex2jar.jar文件
打开jd-gui-0.3.5.windows文件夹,运行里面的jd-gui.exe
在菜单栏File里打开刚才生成的classes_dex2jar.jar文件。
就能得到apk中的java文件了。