Reverse-engineering tools for Android applications
Emacs Lisp Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Reverse Android: Some miscellaneous Android reverse-engineering tools.

This repository contains some tools I've written for reverse-engineering Android
applications, as well as any that I may write in the future.

You can find the initial announcement of these tools on my blog:

The contents so far are:

- ddx.el: An emacs mode for working with Android assembly. Includes two related
  modes, ddx-mode and smali-mode, for working with the output of Dedexer
  ( and baksmali
  ( The mode was written for reading decompiled
  assembly, but may also be useful for people writing smali assembly.

- ddx2dot: A Python script for rendering methods in dedexer-produced assembly
  files to control-flow graphs using dot (

  Usage is 'ddx2dot FILE.ddx METHOD-NAME OUT-FILE'

  METHOD-NAME should be a prefix of the fully type-qualified name of the desired
  method. The output format will be detected from the extension on OUT-FILE; If
  auto-detection fails, the program will write dot source code.

  Sample output can be seen at

  Currently it only supports rendering a single method at a time. If there's
  interest in rendering an entire class to a giant image, I might implement