Reverse-engineering tools for Android applications
Emacs Lisp Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
COPYING Initial import Dec 27, 2010
ddx2dot Default to writing dot source if no extension is given. Jan 1, 2011


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