2012年3月22日木曜日

http://code.google.com/p/androguard/

Androguard (Android Guard) is a tool written in python to play with :

  • .dex (Dalvik virtual machine)
  • APK (Android application)
  • Android's binary xml
  • .class (Java virtual machine)
  • JAR (Java application)

To install androguard, please follow the link. Moreover, the roadmap and features are now available.

You can play directly with Androguard by using ARE Virtual Machine :

  • You can update the repository in tools/androguard with : hg pull && hg update because it's not the latest version in the vm

Androguard has the following features :

  • Map and manipulate (read/write) DEX/CLASS/APK/JAR files into full Python objects,
  • Native support of DEX code in a c++ library,
  • Access to the static analysis of your code (basic blocks, instructions, permissions (with database from http://www.android-permissions.org/) ...) and create your own static analysis tool,
  • Check if an android application is present in a database (malwares, goodwares ?),
  • Open source database of android malware (this opensource database is done on my free time, of course my free time is limited, so if you want to help, you are welcome !),
  • Diffing of android applications,
  • Measure the efficiency of obfuscators (proguard, ...),
  • Determine if your application has been pirated (plagiarism/rip-off indicator),
  • Risk indicator of malicious application,
  • Reverse engineering of applications (goodwares, malwares),
  • Transform Android's binary xml (like AndroidManifest.xml) into classic xml,
  • Visualize your application with gephi (gexf format), or with cytoscape (xgmml format), or PNG/DOT output,
  • Patch JVM classes, add native library dependencies,
  • Dump the jvm process to find classes into memory,
  • ....

So, you can analyze, display, modify and save your apps easily and statically by creating your own software (by using the API), or by using the tool (androlyze) in command line. This tool is useful when you would like to do reverse engineering on a specific application (e.g : malware).

The second part of the tool is to do new tools to get differences between two android/java applications, or to find similarities in different applications (e.g : to check if a part or entire application has been stolen).

And for now, you can check if an android application is present in a database (like a malware).

This tool has been designed for Android apps, but if you have read this section, you have seen that we support JVM format, so you can used this tool with classical Java apps.

0 件のコメント:

コメントを投稿