最近查了一些关于Android反编译的知识,幸在有诸位博客大神分享,少走一些弯路。以下是自己对反编译的使用笔记。
我们做项目开发,有时候会想去使用别的app里面的图片,参考布局和一些代码,然而一般的.apk都是经过代码混淆的,防止apk反编译,混淆了我们就没办法知道太多了。
反编译主要用到3个工具:
1、apktool2.0.2 主要是进行反编译后获得图片和布局的代码,一些资源文件;
2、dex2jar-2.0 将反编译后的classes.dex文件转化为jar,或者直接把apk 转化为jar;
3、jd-gui-windows-1.4.0 对第2步获得的jar,进行查看
使用方法
1、apktool2.0.2,进入apptool目录(如果设置了环境变量就不用特地到目录下),输入以下命令(括号内是注解,要了解更多,输入apktool就可以看)
apktool d [-s] -f <apkPath> -o <folderPath>
d(--decode解码)
-f(--force 强制删除目标目录,解码时若使用已经存在的文件夹)
-s(no source 不解码原文件,防止拆卸dex文件 )
<apkPath> (apk的路径)
-o (--output<dir>目标文件夹)
<folderPath>( 反编译后的目标文件夹名)
若没有-o <folderPath>则存储到apktools的文件夹,且文件夹名为.apk前面的名字
若没有-o <folderPath>则存储到apktools的文件夹,且文件夹名为.apk前面的名字
图例:
2、dex2jar-2.0,将第一步中文件夹中的classes.dex取出,放入dex2jar-2.0的目录。执行完成下面的指令
d2j-dex2jar classes.dex 会产生一个classes_dex2jar.jar 可以用到第三个工具来查看
(ps:classes.dex也可以通过把apk的后缀改为zip并解压获得,classes.dex就是java文件编译再通过dx工具打包而成)
还有就是再简单些,直接通过apk获取jar
3、jd-gui-windows-1.4.0 ,直接使用jd-gui.exe然后选择第二步产生的jar就可以看到里面的源代码了。
三、 图形化反编译apk
现在提供一种图形化反编译工具:Androidfby
首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk
(方便但不可靠之感,经常出错)
本博客反编译方法,仅供参考学习使用,禁止用于非法和商业等用途,谢谢!