Android反编译最新教程

一:工具下载

apktool:反编译资源文件;
dex2jar:反编译源码(classes.dex->jar);
jd-gui:查看jar中的源码;
下载地址:反编译合集

其中的apktool版本过低,可能会导致反编译出错,提供自己上传的最新版apktool2.3.1。


解释一下为什么apktool版本过低会导致编译出错:当下大家都知道反编译这回事儿,为了保证自己的成果不被别人用于不正当用途,所以会研究apktool中的源码找到漏洞防止被反编译。所以apktool也在不断更新修复漏洞。


二:反编译资源文件

把要反编译的apk放入apktool文件夹,cmd命令行进入该目录;

旧版apktool输入:apktool.bat d -f xxx.apk outputfilepath。其中xxx.apk是你需要反编译的apk,outputfilepath是输出的文件夹名称,文件夹就位于apktool内并且会自动生成不用自己创建。
新版apktool输入:apktool.bat d -f xxx.apk -o outputfilepath。新版命令和旧版有所区别,有更多需要可以输入apktool查看命令。


在生成的文件夹中就可以看到资源文件了。

三:反编译源码

把需要反编译的apk后缀改为rar或zip,然后解压,找到classes.dex文件。

把classes.dex文件放入dex2jar文件夹,cmd命令行输入dex2jar.bat classes.dex,会生成一个classes_dex2jar.jar的jar包,

把这个jar包放入jd-gui即可看到源码了。需要注意的是目前大部分apk都进行了混淆,所以当你看到源码中包名为a、b之类的形式,应该就是进行混淆过的。

虽然被混淆了,但是还是可以看到一些lib等等,有助于拓宽自己的思路。

你可能感兴趣的:(Android)