YADD is designed to be a complex disassembler for static Android app analysis, which supports bytecode-level class and method signature extraction and offers an easy-to-use interface for reverse engineering.
As a reverse engineering toolkit, YADD should basically support:
- Code block differentiation and control flow visualization.
- Symbolic level def-use chain to highlight the data dependency between instructions.
YADD is now relying on the Dex file parsing and the instruction decoding algorithm provided by Android Open Source Project. It can now be built as a independent executable for Dex code disassembling and signature extraction. More features about control and data flow analysis will be updated in the near future.
Clone the project to your working directory.
In the working directory, type the following commands.
$ ./clean.py --rebuild
$ cd build
$ cmake ..
$ make
Done! And the executable should locate at:
/PATH/TO/YOUR/WORKING/DIRECTORY/bin/dumper
Usage: dumper [options]
Example: dumper --granularity=instruction --input=/PATH/TO/MY/DEX --output=PATH/TO/MY/LOG
--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
Any problems? please contact me via the mail: andy.zsshen@gmail.com
