1、反编译工具
APK TOOL :谷歌提供的 APK 编译工具,可以反编译和回编译。我们都知道,其实 APK 就是一个压缩包,我们完全可以把 .apk 修改为 .zip。通过这种方式来获取资源文件,但是 xml 会乱码。如果你使用 apk tool 来进行反编译 apk 就不会出现这种问题了。 下载地址:https://ibotpeaches.github.io/Apktool/install/ (需要科学网)
dex2jar:将 dex 文件转换成 jar 包 下载地址:http://sourceforge.net/projects/dex2jar/files/
jd-gui:用来查看 jar 包里面的代码的一种工具。官网下载地址:http://jd.benow.ca/
APK TOOL 的使用
使用很简单,把要反编译的 apk 放到 apktool.jar 所在的目录,然后在命令行中定位到当前文件夹。然后输入命令: apktool d xxx.apk 这样就成功了。会在当前目录下生成一个以 apk 命名的目录,这个目录就是解压出来的目录。
或者是 java -jar apktool.jar d xxx.apk
dex2jar 使用
把 apk 解压后的 classes.dex 文件放到 dex2jar 所在的文件夹中。
dex2Jar 工具版本>= 2.1时:
然后在当前目录下在命令行中输入: d2j-dex2jar.bat xxxx.apk 就会生成一个 classes.jar 包。然后用 jd-gui 打开就可以了。
dex2Jar 工具版本< 2.1时:
单个dex 文件:
然后在当前目录下在命令行中输入: d2j-dex2jar classes.dex 就会生成一个 classes.jar 包。然后用 jd-gui 打开就可以了。
多个dex文件:
多次执行 d2j-dex2jar classes*.dex,得到多个classes*.jar 包
提取所有的dex文件后,就需要将这些jar的文件全部提取出来,再重新打成一个jar包,具体操作如下
对每个jar包执行 jar xf xxxx.jar,就可能会得到下面这一列文件夹
再下一步,就要重新打包这些文件夹,使用下面命令重新打包
jar cf generate.jar dir1 dir2 dir3 dir4
dir 就是提取出来的文件夹,要把所有的文件夹全部手动输入完,才能打包成一个完整的jar 包。
generate.jar就是打出来的包的名字,可以自己随便起。
参考/来源:
网友评论