androguard: Reverse engineering, Malware and goodware analysis
Androguard (Android Guard) is a tool written in python which helps us to 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.
This tool has been designed for Android apps, but it also support JVM format, so you can used this tool with classical Java apps.
- .dex (Dalvik virtual machine)
- APK (Android application)
- Android’s binary xml
- .class (Java virtual machine)
- JAR (Java application)
Androguard 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 ) 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,
There is a long list of requirement for Androguard
- >= python 2.6
- networkx please install the mercurial version
- ipython for androlyze
- python-ptrace for androdump.py
- pydot for androdd.py or method2 methods.
- chilkat can be used to unzip APK application, otherwise the zip python module is used (module apk.py)
- magic is used in method get_files_types in APK module to found files types (module apk.py)
- pyfuzzy is used to calculate risk indicator (module risk.py)
- psyco is used to accelerate androguard, but it’s not mandatory to install it.
- pygments to have colors with decompilation
Androguard v1.0 RC – androguard-1.0-rc1.tar.gz – http://code.google.com/p/androguard/downloads/list