Book Image

Practical Mobile Forensics

Book Image

Practical Mobile Forensics

Overview of this book

Table of Contents (20 chapters)
Practical Mobile Forensics
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
10
Android Data Recovery Techniques
Index

Reverse engineering Android apps


To state it in simple terms, reverse engineering is the process of retrieving source code from an executable. Reverse engineering an Android app is done in order to understand the functioning of the app, data storage, security mechanisms in place, and more. Before we proceed to learn how to reverse engineer an Android app, here is a quick recap of the Android apps:

  • All the applications that are installed on the Android device are written in the Java programming language.

  • When a Java program is compiled, we get bytecode. This is sent to a dex compiler, which converts it into a Dalvik bytecode.

  • Thus, the class files are converted to dex files using dx tool. Android uses something called Dalvik virtual machine (DVM) to run its applications.

  • JVM's bytecode consists of one or more class files depending on the number of Java files that are present in an application. Regardless, a Dalvik bytecode is composed of only one dex file.

Thus, the dex files, XML files, and...