反编译中使用到的工具:
- apktool.jar & apktool.bat:用于反编译apk中的资源文件,或者将反编译后的apk重新编译成apk文件。 还原后的apk需要签名才能使用。
- dex2jar:将apk解压后的classes.dex文件,放在工具目录下运行d2j-dex2jar.bat classes.dex,获区对应classes-dex2jar.jar文件,直接用jd-gui查看源码java文件。
- JD-GUI:直接查看classes-dex2jar.jar代码
♦ apktool使用方法:
反编译:
将test.apk放到apktool同级目录,使用cmd输入指令:
apktool d test.apk
默认会在同级目录生成包含apk资源文件的test文件夹。
重新打包成apk
在apktool目录,输入命令:
apktool b test
apk被重新打包到test/dist文件夹下。
♦ dex2jar & JD-GUI使用方法
将test.apk后缀名改为zip/rar解压后取得classes.dex文件,将此文件放到dex2jar目录下,运行命令
d2j-dex2jar.bat classes.dex
同目录下生成classes-dex2jar.jar文件。使用JD-GUI打开classes-dex2jar.jar即可查看java源代码。
★ 反编译中遇到的问题
apktool d test.apk报错
Exception in thread “main” brut.androlib.err.UndefinedResObject: resource spec: 0x7f000000
原因是apk使用的SDK版本较高而apktool.jar版本过低,到官网下载最新版apktool.jar即可。
d2j-dex2jar.bat classes.dex 报错
Detail Error Information in File .\classes-error.zip
Please report this file to http://code.google.com/p/dex2jar/issues/entry if possible.
dex2jar工具版本不适配,下载稳定版(0.0.9.15)。
来源:CSDN
作者:copyworker
链接:https://blog.csdn.net/yesdehua/article/details/104628007