Dissecting Android APK

29
Dissecting Android APK Reversing Android applications

Transcript of Dissecting Android APK

Page 1: Dissecting Android APK

Dissecting Android APKReversing Android applications

Page 2: Dissecting Android APK

/> self.me

- Final year undergraduate student at Amrita University, Amritapuri

- Love Android !

- Currently researching on Android security

- Play CTFs as a part of team bi0s

Page 3: Dissecting Android APK

bi0s

Page 4: Dissecting Android APK

Index

- Why Android ?

- Android security implementations and issues

- Real world Android malwares

- Reversing Android apps

- Structure of an APK

- Analyzing the contents

- Demo

- Workaround

Page 5: Dissecting Android APK

Why Android ?

The Tale of Triumph

Open source - power to you!

User-friendly

Most used - more developers

Page 6: Dissecting Android APK

Mobile OS Global Market Share 2016

Page 7: Dissecting Android APK

Android security

- Sandboxing

- Permissions

- ASLR since Android 4.0 ICS

- ARM TrustZone

Implementations

Page 8: Dissecting Android APK

Permissions

Page 9: Dissecting Android APK

ARM TrustZone

Page 10: Dissecting Android APK

Are we at risk ?

Page 11: Dissecting Android APK

Issues - Malwares

- Ransomwares

- Exploits

Page 12: Dissecting Android APK

Real world Android malwares

Page 13: Dissecting Android APK

AccuTrack : Turns an Android device into a GPS tracker

AckPost : Steals contact information from the device and sends it to a remote server

BackFlash / Crosate : Installs as a fake Flash plugin, registers as a Device administrator, and steals sensitive data

BankBot : Particularly aims at stealing bank account information from dedicated apps

DroidDeluxe :Exploits the device to gain root privilege and then modifies access permission of database files and collects account information

Page 14: Dissecting Android APK

APKAndroid package : APK

Zip file with .apk extension

Playstore, Amazon Appstore, F-Droid

Java + res + XML + Libs

Android PacKage

Page 15: Dissecting Android APK

Making of an APK

Page 16: Dissecting Android APK

Reversing Android apps Tools and Methodologies

Page 17: Dissecting Android APK

APKTOOLReversing APKs

- Compile/decompile apps

- Smali code

- To modify apps

Page 18: Dissecting Android APK

Structure of an APK

Page 19: Dissecting Android APK

assets - all the unmodified app contents

AndroidManifest.xml - Generic; The app-map

classes.dex - Java files’ package. The Dalvik executable [ yeah! the source ]

res - All the resources ( drawables, icons, values )

lib - External/custom native libraries

Resources.asrc - Compiled resources / binaries

META-INF - Certificates

Page 20: Dissecting Android APK

Dalvik / ART

→ JVM redefined

→ Dalvik until 4.4.4 Kitkat. ART from 5.0 Lollipop

→ Executes dex

→ Dalvik - JIT, ART - AOT

Page 21: Dissecting Android APK

DEXDalvik Executable

> Dalvik’s bytecode

> java classes

> Easy to debug

Page 22: Dissecting Android APK

Tools

Page 23: Dissecting Android APK

ADBAndroid Debug Bridge

- Android tool

- Drop shells, files

- Access partitions

- Install applications

Page 24: Dissecting Android APK

Dex2JarThe source

- Small in size

- Any platform

- Extracts compiled classes out of the dex

- Easy to use

Page 25: Dissecting Android APK

Demo

Page 26: Dissecting Android APK

Workaround ? → Check permissions

→ Trusted app sources

→ Use ‘ anti-malware ’ apps

Page 27: Dissecting Android APK

Glossary

- aapt : Android Asset Packaging Tool.

- dex : Dalvik executable.

- dx : Tool within the Android SDK used to convert the jar files into dex files.

- R.java : A class with static methods to reference all the resources.

Page 29: Dissecting Android APK

Thank You