Reverse engineering of platforms Java and Android

Thesis title: Reverzní inženýrství na platformách Java a Android
Author: Žák, Josef
Thesis type: Diplomová práce
Supervisor: Pecinovský, Rudolf
Opponents: Oraný, Vladimír
Thesis language: Česky
Abstract:
Práce se zabývá reverzním inženýrstvím na platformě Android a Java. Jsou analyzovány (popsány) existující nástroje a techniky, dále jsou zkoumány možnosti obrany. První část se zabývá důkladnou rešerší prací na toto téma. Další část diskutuje oblasti využití reverzního inženýrství. Další kapitoly popisují operační systém Android a koncept virtuálních strojů na obou platformách. Je uvedeno porovnání registrové a zásobníkové architektury virtuálního stoje. Jádro práce je zaměřeno na statickou analýzu (obsah APK souboru, di-sassemblování, zpětný překlad). Jsou srovnány současně dostupné zpětné překladače pro class soubory a dex soubory. Testy pro zpětný překlad zahrnují různé verze Javy. Závěrečná kapitola se zabývá metodami obrany proti reverznímu inženýrství, včetně popisu výhod a nevýhod. Jsou otestovány dva populární obfuskátory (Proguard, DashO).
Keywords: Android; disassemblování; obfuskace; Java; dekompilace; zpětný překlad; reverzní inženýrství
Thesis title: Reverse engineering of platforms Java and Android
Author: Žák, Josef
Thesis type: Diploma thesis
Supervisor: Pecinovský, Rudolf
Opponents: Oraný, Vladimír
Thesis language: Česky
Abstract:
This thesis deals with reverse engineering of Android and Java. It contains a description of existing tools and techniques, including techniques of defense. The first part is focused on available research about the topic. The next part discusses usage of reverse engineering in software development. The next chapters describe Android operating system and concept of a virtual machine on both platforms. Both kinds of architectures are compared (register-based vs stack-based machine). Core of the work is focused on static analysis (content of APK file, disassembling, decompilation). Available decompilers of class and dex files are compared. Testing is made with various versions of Java. The final chapter contains techniques and tools of defense against reverse engineering including a description of pros and cons. Two popular obfuscators are tested (Proguard, DashO).
Keywords: reverse engineering; disassembling; decompilation; Java; Android; obfuscation

Information about study

Study programme: Aplikovaná informatika/Informační systémy a technologie
Type of study programme: Magisterský studijní program
Assigned degree: Ing.
Institutions assigning academic degree: Vysoká škola ekonomická v Praze
Faculty: Faculty of Informatics and Statistics
Department: Department of Information Technologies

Information on submission and defense

Date of assignment: 15. 1. 2016
Date of submission: 27. 4. 2016
Date of defense: 13. 6. 2016
Identifier in the InSIS system: https://insis.vse.cz/zp/55794/podrobnosti

Files for download

    Last update: