反编译中使用到的工具:

  • 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文件夹。
Android apk反编译 记录


重新打包成apk
在apktool目录,输入命令:

apktool b test

apk被重新打包到test/dist文件夹下。
Android apk反编译 记录


♦ 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)

相关文章:

  • 2021-05-14
  • 2021-08-19
  • 2021-10-13
  • 2021-06-25
猜你喜欢
  • 2021-06-28
  • 2021-05-22
  • 2022-01-21
  • 2021-10-06
  • 2021-06-25
相关资源
相似解决方案