Skip to content

eebssk1/dex2jar

 
 

Repository files navigation

dex2jar

Travis CI build status

This is Nico Mexis' fork of the dex2jar project which aims to fix most issues.

Fixed issues

  • Fixed many StringIndexOutOfBoundsExceptions relating to signatures
  • Fixed TypeTransformer related issues
  • Fixed many NullPointerExceptions and other crashes
  • Fixed grammar of error messages
  • Update libraries (especially ASM)
  • Library fat-jar can be used for other projects (Automatically produced by GitHub Actions)
  • Smali now outputs .param instead of the outdated .parameter syntax
  • Reformatted and cleaned up most of the code

Downloads

To download the latest builds, head to the Releases.

Note: the builds in Releases are automatically built by GitHub Actions.

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

  1. dex-reader/writer: Read/write the Dalvik Executable (.dex) file. It features a lightweight 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
  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.

Example Maven project:

See for example the infamous Bytecode Viewer.

Need help ?

Send an email to nico.mexis@kabelmail.de or post on the issue tracker.

License

Apache 2.0

About

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

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 71.2%
  • Smali 25.1%
  • GAP 2.3%
  • Jasmin 0.8%
  • ANTLR 0.5%
  • Shell 0.1%