APK反编译相关

2,500 阅读1分钟

前言

时不时会用到apk反编译查看资源或代码的问题,apktools、dex2jar、jd-gui三件套必不可少,之前没有系统的记录遇到问题的习惯,都是遇到问题解决问题(google你懂的)。 今天再一次遇到反编译的需求,发现之前使用的工具全部宕机,开这篇文章就是用来记录遇到的问题,及解决方式,避免以后遇到问题要重复劳动。

apktools

java -jar apktools.jar d test.apk -o testdir

反编译

apktool d test.apk

打包

apktool b test

2020.02.26

遇到问题:

I: Using Apktool 2.0.0-RC2 on test.apk
I: Loading resource table...
Exception in thread "main" brut.androlib.AndrolibException: Multiple resources: spec=0x7f10004e style/Base.Theme.AppCompat.Dialog, config=-v21
    at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:63)
    at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:56)
    at brut.androlib.res.decoder.ARSCDecoder.readEntry(ARSCDecoder.java:186)
    at brut.androlib.res.decoder.ARSCDecoder.readConfig(ARSCDecoder.java:157)
    at brut.androlib.res.decoder.ARSCDecoder.readType(ARSCDecoder.java:125)
    at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:100    )
    at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:78)
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:47)
    at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibReso    urces.java:605)
    at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java    :74)
    at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java    :66)
    at brut.androlib.Androlib.getResTable(Androlib.java:53)
    at brut.androlib.ApkDecoder.setTargetSdkVersion(ApkDecoder.java:206)
    at brut.androlib.ApkDecoder.decode(ApkDecoder.java:93)
    at brut.apktool.Main.cmdDecode(Main.java:170)
    at brut.apktool.Main.main(Main.java:86)

当前版本: 2.0.0-RC2

解决方案:使用最新版本 2.4.1

dex2jar github.com/pxb1988/dex…

终端执行d2j-dex2jar.sh classes.dex

常见问题

1、出现Permission denied 执行 sudo chmod +x d2j_invoke.sh,sh d2j-dex2jar.sh classes3.dex

2020.02.26

遇到问题:

dex2jar classes.dex -> ./classes-dex2jar.jar
Detail Error Information in File ./classes-error.zip
Please report this file to http://code.google.com/p/dex2jar/issues/entry if possible.

当前版本:2.0,2.0.2

解决方案:使用github最新版本解决。

下载地址:github.com/pxb1988/dex…

jd-gui(jar工具)

java-decompiler.github.io/

2020.02.26

遇到问题:部分类解析失败

当前版本:1.4.0

解决方案:使用1.6.6