Android Development, Exploitation, and Reversing


5 Days

Course Code:  AND-2045


Employees of federal, state and local governments; and businesses working with the government.

Learn the fundamentals of Software Development in the Android Operating System

This course is designed for individuals looking to gain a working knowledge in Android development. Through a combination of instructor-led examples and a series of programming assignments and challenges, you will build and enhance your practical knowledge of software development, exploitation and hacking in the Android operating system. Additionally, you will learn how to deploy, execute, and test all developed programs on Android emulation software and Android hardware devices provided in this class.

What You’ll Learn

  • Android architecture and design
  • Android SDK and APK development
  • Reserve engineering Android applications
  • Hacking Android phones

Course Outline

Day 1

1. Introduction

  • History
  • Android Versions

2. The Stack

  • Stack Overview
  • Linux
  • Native Libraries
  • Dalvik
  • Application Framework
  • Android Startup: Booting
  • Android Runtime

3. Main Building Blocks

  • Intents
  • Services
  • Content Providers
  • Broadcast Receivers
  • Application Context
  • Installing the Android SDK
  • The Emulator
  • Yamba Project Overview
  • Preferences, FileSystem, Options Menu and Intents
  • Services
  • Lists and Adapters
  • Broadcast Receivers
  • Content Providers
  • System Services
  • The Android Interface Definition Language (AIDL)
  • The Native Development Kit (NDK)

Day 2

4. Reverse Engineering Applications

  • ARM Assembly

Day 3

5. Reserve Engineering and Decompiling Android Binaries

  • Why RE?
  • APK Internals

6. Examining a Binary

  • The Process of Binary RE
  • Encryption and Digital Signing
  • Decompiling an Android Application

Day 4

7. Android Hacking Basics

  • Learning the Language of Android Hacking
  • Rooting the Android Phone
  • Installing Third-Party Apps
  • Manipulating Android File System
  • Backing up Android Files

8. Advanced Android Forensics

  • Extracting Text Messages
  • Extracting Address Books
  • Extracting Voice Mails
  • Extracting Browsing History

9. Android Network Hacks

  • Tracking an Android (Geo-Location)
  • Connecting to an Android phone via the Internet
  • Tethering the Android
  • Wi-Fi Hacks

Day 5

10. Student Practical Demonstration


  • Lab 1: Android Overview and Building Blocks
  • Lab 2: Reverse Engineering Applications
  • Lab 3: Reserve Engineering and Decompiling Android Binaries
  • Lab 4: Examining a Binary
  • Lab 5: Android Hacking Basics
  • Lab 6: Advanced Android Forensics
  • Lab 7: Android Network Hacks
  • Lab 8: Develop an Android Trojan Horse Application

Who Needs to Attend

  • Programmers who want an introduction to mobile application development
  • Reverse Engineers who need a thorough understanding of Google Android Devices
  • Security professionals that want solid defense strategy for their mobile devices


  • Experience with Android products such as Android phones and tablets are recommended
  • Programming experience in C, Python, Perl or Java is highly recommended