ubuntu下apk的反编译
ubuntu系统下反编译apk
1. 下载dex2jar 并将其解压。如 :解压目录为:dex2jar-0.0.7-SNAPSHOT
下载地址 http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
2. 打开要反编译的apk将其中的classes.dex 文件copy到dex2jar-0.0.7-SNAPSHOT目录。
3. 在命令行中执行以下命令(首先要定位到dex2jar-0.0.7-SNAPSHOT目录),此命令成功执行后将会生成相应的***.jar包。
sh dex2jar.sh classes.dex
4. 下载linux系统的JD-GUI工具。解压后直接运行jd-gui。然后打开反编译出来的***.jar包。
我遇到这样的问题
ERROR com.googlecode.dex2jar.reader.DexFileReader - .... ROOT cause:
java.lang.NullPointerException
at com.googlecode.dex2jar.optimize.TypeDetectTransformer.req(TypeDetectTransformer.java:355)
at com.googlecode.dex2jar.optimize.TypeDetectTransformer.exec(TypeDetectTransformer.java:431)
at com.googlecode.dex2jar.optimize.TypeDetectTransformer.transform(TypeDetectTransformer.java:191)
at com.googlecode.dex2jar.v3.V3MethodAdapter.visitEnd(V3MethodAdapter.java:168)
at com.googlecode.dex2jar.reader.DexFileReader.acceptMethod(DexFileReader.java:547)
at com.googlecode.dex2jar.reader.DexFileReader.acceptClass(DexFileReader.java:323)
at com.googlecode.dex2jar.reader.DexFileReader.accept(DexFileReader.java:205)
at com.googlecode.dex2jar.v3.Main.doData(Main.java:52)
at com.googlecode.dex2jar.v3.Main.doFile(Main.java:85)
at com.googlecode.dex2jar.v3.Main.main(Main.java:113)
解决办法是,不要将apk文件改成zip格式的,直接进行解压缩classes.dex文件,反编译就不会报错了。