Android Development, Exploitation, and Reversing

Duration:

5 Days

Audience:

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

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

Prerequisites

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

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

Labs

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