Reverse engineering of platforms Java and Android

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).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)

    Similar works