This document describes tools included in the Android Reverse Engineering (A.R.E.) virtual machine from the Honeynet Project for analyzing Android malware. The A.R.E. VM includes tools for decompiling Android apps, disassembling Dalvik bytecode, inspecting app files and permissions, and monitoring apps dynamically in an instrumented Android virtual machine. It allows static and dynamic analysis of Android apps to identify malicious behavior and understand app functionality.
1 of 16
Downloaded 14 times
More Related Content
Mobile malware analysis with the a.r.e. vm
1. LA2600
Android Malware Analysis with the
Android Reverse Engineering(A.R.E.)
LA2600.org
VM
Jimmy Shah
2. LA2600
2
Android Reverse Engineering(A.R.E.) VM
LA2600.org
VM from the Honeynet Project
Includes a full set of tools for reverse engineering Android apps
Conversion tools
Dex2jar
Classes.dex Classes.dex.dex2jar.jar
AXMLprinter2.jar
binary XML Human readable XML
Disassembler
Baksmali
Dalvik bytecode Jasmin-like assembly language
GUI
APKInspector
GUI includes baksmali, dex2jar, APKtool
5. LA2600
5
LA2600.org
Android for Reverse Engineers
Android apps are distributed as APKs(zip files) what's inside?
Files
AndroidManifest.xml
Stored as binary XML
Permissions requested
Registered intents
Entry points
classes.dex
bytecode for the Dalvik VM
App code is in classes.dex files.
resources.arsc
compiled resource table
6. LA2600
6
LA2600.org
Android for Reverse Engineers, cont.
Android apps are distributed as APKs(zip files) what's inside?
Directories
META-INF
Public Keys
Signatures for each component in the APK
res
Images, strings, etc.
assets
libraries
other executables
Other JARs
7. LA2600
Java vs. Android
.JAVA javac .CLASS JAR dx
7
LA2600.org
Android for Reverse Engineers, cont.
JJAARR
.C.CLLAASSSS
.C.CLLAASSSS
.C.CLLAASSSS
.CLASS
.CLASS
main()
main()
AAPPKK
cclalasssseess.d.deexx
8. LA2600
8
LA2600.org
Processing a suspicious sample
1) Get sample
2) Begin analysis
Static
Identify known and active files
File formats
Executables
Data fies
Archives
active files
Executables and all files that can have an effect on the system
Dynamic
Run in Android VM
10. LA2600
LA2600.org
Overview GNU strings
You need strings, use strings.
Ascii is default, unicode with option
'-el' for 16 bit little-endian strings
Why?
Function calls
Interesting Strings
Messages
Errors
Debug
To analysts/press/etc.
Shout-outs
11. LA2600
11
LA2600.org
Conversion - AXMLPrinter2
Java tool to convert AndroidManifest.xml to human readable XML
12. LA2600
12
LA2600.org
Decompilers - JAD
Java Decompiler
Feed it a JAR and get back decompiled .java source code.
One of the few currently available java decompilers
Useful but may no longer be updated by the author.
Fails on some JAR files, classes
Easy to run
13. LA2600
13
LA2600.org
Decompilers - ded
Android decompiler
Newer academic project designed specifically for mobile apps
Optionally uses the Soot Java optimization framework to provide better
results.
Combines translation to JVM bytecode , optimization and decompilation
Takes a while,but the success rate is higher than other tools.
14. LA2600
14
LA2600.org
VM - DroidBox
Instrumented Android VM
Monitors
Network activity
Opened connections
Outgoing traffic
Incoming traffic
DexClassLoader
Broadcast receivers
Started services
Enforced permissions
Permissions bypassed
Information leakage
Sent SMS
Phone calls
15. LA2600
15
LA2600.org
VM - DroidBox, cont.
Running VM
./startemu.sh Android21
./droidbox.sh <sample.apk>
Ctrl-C to end logging/analysis
16. LA2600
16
LA2600.org
GUI - APKInspector
Useful for analyzing APKs in one place
Static analysis only
Strings, Methods, Disassembly, CFGs,etc.