Yet another Android Dex bytecode Disassembler
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 4 commits behind ZSShen:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
engine
util
CMakeLists.txt
README.md
clean.py

README.md

YADD

Join the chat at https://gitter.im/ZSShen/YADD Yet another Android Dex bytecode Disassembler

##Objective Currently, this project is for self-studying purpose. But in essence, YADD is planed to be a complex disassembler for the Android Dex bytecode. That is, a hybrid tool to support pure binary/signature dumping and to provide an interface for reversing analysis.

As a reversing toolkit, YADD will basically support:

  • Code block differentiation and control flow visualization.
  • Symbolic level def-use chain to highlight the data dependency between instructions.

##Current Progress YADD is now relying on the Dex file parsing and the instruction decoding algorithm of Android Open Source Project. It can now be built as a pure executable for Dex code dumping. More capabilities about control and data flow analysis will be updated in the near future.

##Installation Clone the project into your working folder. In the working folder, type these instructions.

$ ./clean.py --rebuild
$ cd build
$ cmake ..
$ make

Done! And the executable should locate in: /path/to/your/working/folder/bin/dumper

##Usage

Usage: dumper [options]
    Example: dumper --granularity=instruction --input=/PATH/TO/MY/DEX --output=PATH/TO/MY/TXT

  --granularity=(class|method|instruction): For data granularity
    class      : List class names only
    method     : List method signatures only
    instruction: Full dump

  --input=<classes.dex>: Specify the input dex pathname

  --output=<dump.txt>: Specify the output dump pathname

##Contact Any problems? please contact me via the mail: andy.zsshen@gmail.com