dex2jar README

The project's README from github.com/pxb1988/dex2jar. As one markdown file: README.md.

dex2jar

Project move to GitHub

_ Mirror Wiki Downloads Issues
gh https://github.com/pxb1988/dex2jar Wiki Releases Issues
sf https://sourceforge.net/p/dex2jar old old old
bb https://bitbucket.org/pxb1988/dex2jar old old old
gc https://code.google.com/p/dex2jar old old old

Tools to work with android .dex and java .class files

  1. dex-reader/writer: Read/write the Dalvik Executable (.dex) file. It has a light weight API similar with ASM.
  2. d2j-dex2jar: Convert .dex file to .class files (zipped as jar)
  3. smali/baksmali: disassemble dex to smali files and assemble dex from smali files. different implementation to smali/baksmali, same syntax, but we support escape in type desc "Lcom/dex2jar\t\u1234;"
  4. other tools: d2j-decrypt-string

Usage

  1. In the root directory run: ./gradlew distZip
  2. cd dex-tools/build/distributions
  3. Unzip the file dex-tools-2.1-SNAPSHOT.zip (file size should be ~5 MB)
  4. Run d2j-dex2jar.sh from the unzipped directory

Example usage:

sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk

And the output file will be apk_to_decompile-dex2jar.jar.

Need help ?

post on issue trackers list above.

License

Apache 2.0

dex2jar (pxb1988/dex2jar)

Searching Database…

13.1K ·GitHub
这是什么?这是一套用于处理 Android .dex 文件和 Java .class 文件的命令行工具,最有名的用途是把 APK 里的 dex 字节码转换成 jar 文件,方便用 Java 反编译器打开查看。
它是命令行工具,还是给我自己写代码用的库?两者都是。日常使用是命令行方式(d2j-dex2jar.sh 等脚本),但这个包还自带 dex-reader/writer,这是一个轻量的 Java API,用于读写 .dex 文件,设计上仿照 ASM。
我该怎么弄到一份能用的版本?从源码构建:在仓库根目录运行 ./gradlew distZip,然后从 dex-tools/build/distributions 里取出 dex-tools-2.1-SNAPSHOT.zip,解压(约 5 MB),再在那个文件夹里运行 d2j-*.sh 脚本。
在运行之前我需要装好什么?需要一个 JDK:这些工具本质上是 Java 程序,用自带的 Gradle wrapper 构建,通过 shell 脚本启动。README 里没有写明最低要求的 Java 版本。
它能直接给我可读的 Java 源代码吗?它本身不能:d2j-dex2jar 只是把 .dex 转成打包成 jar 的 .class 文件,你还需要把这个 jar 交给 Java 反编译器,才能得到可读的源代码。
它能在 Windows 上运行吗,还是只能在 Linux/macOS 上用?README 里只展示了 shell 脚本的用法(sh d2j-dex2jar.sh),所以 Linux 和 macOS 是文档中说明的环境;不过它就是普通的 Java 程序,只要有 JVM 就能运行,只是没有提到 Windows 启动脚本。
smali 是什么?什么时候我会想用它而不是反编译器?smali 是一种汇编风格、人类可读的 Dalvik 字节码表示形式。baksmali 可以把 dex 转成你能阅读或编辑的 .smali 文件,smali 再把它们汇编回 dex——这样你就能修改应用的代码,而不只是查看它。
我能直接给它一个完整的 APK 吗,还是只能用单独的 .dex 文件?APK 可以直接使用:README 的示例就是把 APK 路径直接传给脚本——sh d2j-dex2jar.sh -f ~/path/to/apktodecompile.apk——然后输出 apktodecompile-dex2jar.jar。
它的 smali/baksmali 和知名的原始版本有什么不同?这是一个语法相同的独立实现,并且扩展支持了类型描述符中的转义字符——当类名里包含常规工具无法处理的特殊字符时,这个功能就很有用。
有现成的可执行文件吗,还是我必须自己构建?README 顶部链接了 GitHub Releases,但文档中介绍的方式是自己构建 zip 包:运行 ./gradlew distZip 会生成 dex-tools-2.1-SNAPSHOT.zip(约 5 MB),解压后即可运行。
Creator
pxb1988
Size
8.5 MB
Stars
13.1K
Age
11y
Commits · 90 Days