最近在开发一个功能,功能已经实现了,但是性能相当的差,网上找了一些原因,也需要逐一验证,所以想看看别人都是怎么做的,就想到了反编译来试试。写出来的目的也只是记录下大致过程,纯粹是抱着一种学习的心态,而不是去破解别人的软件,请勿用于商业用途。
使用环境: win10 X64
工具:apk2java。
打开apk2java目录下的dex2jar-0.0.9.9文件夹,包含apk反编译成java源码的工具,以及查看源码的工具。
apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件
源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码
步骤:首先将需要反编译的apk包后缀名改为zip并解压,得到其中的classes.dex,再将classes.dex复制到dex2jar.bat所在的文件夹中。
其次通过命令行定位到dex2jar.bat所在的目录,如
再运行dex2jar.bat classes.dex,会生成classes_dex2jar.jar。
然后,进入jdgui文件夹下的jd-gui.exe,打开刚刚生成的classes_dex2jar.jar,即可看见源代码。如
此外,还可以图形化反编译apk,
工具:Androidfby。
打开Androidfby文件夹,双击Android反编译工具exe,可以浏览打开需要反编译的apk包,如
这个很方便,还能查看其中的布局文件。
最后,再介绍一个从google官网下载的apktool,用其进行反编译的步骤。
打开apktool文件夹,在命令行下定位到其下的apktool.bat下,
输入命令:apktool.bat d -f abcd.apk file
这里abcd.apk是需要反编译的apk名称,file是反编译后的文件名。
使用这种方法,可以获取反编译文件程序的代码的同时,也可得到其图片、XML等文件。
以上这三种方法都是我亲自测试过的,可放心使用。