Android apk反编译 记录

霸气de小男生 提交于 2020-03-04 03:38:57

反编译中使用到的工具:

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!