<div class="csl-bib-body">
<div class="csl-entry">Lecker, M. (2026). <i>Virtualization-based Code Obfuscation via Android Runtime Permutation</i> [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2026.130267</div>
</div>
-
dc.identifier.uri
https://doi.org/10.34726/hss.2026.130267
-
dc.identifier.uri
http://hdl.handle.net/20.500.12708/226910
-
dc.description
Arbeit an der Bibliothek noch nicht eingelangt - Daten nicht geprüft
-
dc.description.abstract
Mobile Anwendungen erfordern einen robusten Schutz, um die Kosten für Reverse Engineering zu maximieren und die Wahrscheinlichkeit erfolgreicher Angriffe zu verringern.Traditionelle Verschleierungsmethoden wie Identifier Renaming ermöglichen weiterhin eine statische Analyse der Bytecode-Struktur.Die Virtualisierung auf Anwendungsebene verschleiert den Kontrollfluss zwar effektiv, beeinträchtigt jedoch die Leistung aufgrund häufiger Kontextwechsel über das Java Native Interface (JNI).Wir schlagen daher ein Virtualisierungsframework auf Systemebene vor, das Instruction Set Randomization (ISR) direkt in die Android Runtime (ART) integriert.Wir stellen das Android Opcode Permutation Tool (AOPT) vor, mit dem Standard-Dalvik-Bytecodes von Android-Anwendungen in einen randomisierten Befehlssatz transformiert werden. Das Tool permutiert Opcode-Werte bijektiv, fügt ein Metadaten-Flag in das Android-Manifest ein und generiert eine Opcode-Zuordnung, die als symmetrischer Schlüssel dient.Um die Ausführung dieser permutierten Anwendungen zu ermöglichen, erstellen wir eine angepasste Version des Android 15-Betriebssystems.Das Betriebssystem erkennt das Metadaten-Flag und leitet es an die ART weiter.Wir gewährleisten Abwärtskompatibilität, indem wir den Fallback-Switch-Interpreter erweitern und mehrere Befehlssatzarchitekturen unterstützen. Der Interpreter verwendet die Opcode-Zuordnung für die dynamische Suche, um die gleichzeitige Ausführung von Standard- und verschleierten Anwendungen zu ermöglichen.Wir evaluieren die Robustheit des Frameworks anhand von 20 realen Anwendungen.Der Testkorpus umfasst komplexe Software wie z.B. Webbrowser, Medieneditoren und kryptografische Finanztools. Die Verschleierungstechnik erreicht eine Kompatibilitätsrate von 85% bei vernachlässigbaren Auswirkungen auf die Startlatenz.Algorithmische Benchmarks zeigen einen erhöhten Ausführungsaufwand zwischen 11% und 30% aufgrund der Opcode-Suche. Dieser Kompromiss bei der Leistung führt zu einer erheblichen Widerstandsfähigkeit gegen Reverse Engineering.Standard-Decompiler wie JADX generieren semantisch falschen Code.Ebenso können dynamische Instrumentierungstools wie Frida keine Methoden hooken, da sie auf Standard-Laufzeitstrukturen angewiesen sind. Folglich zielt das Framework auf Hochsicherheitsumgebungen ab, in denen die organisatorische Firmware-Kontrolle und der robuste Schutz den Verlust der Portabilität rechtfertigen.
de
dc.description.abstract
Mobile applications require robust protection to maximize the cost of reverse engineering and reduce the likelihood of successful attacks.Traditional obfuscation techniques, such as identifier renaming, leave the bytecode structure exposed to static analysis.Application-level virtualization effectively obfuscates control flow but degrades performance through frequent context switching via the Java Native Interface (JNI). Therefore, this thesis proposes a system-level virtualization framework that integrates Instruction Set Randomization (ISR) directly into the Android Runtime (ART).We introduce the Android Opcode Permutation Tool (AOPT) to transform Android applications by converting standard Dalvik bytecode into a randomized instruction set. The tool permutes opcode values bijectively, injects a metadata flag into the Android manifest, and generates an opcode mapping that serves as a symmetric key.To enable the execution of these permuted applications, we create a custom version of the Android 15 operating system.The operating system detects the metadata flag and propagates it to the ART.We ensure backwards compatibility by extending the fallback switch interpreter to support multiple instruction set architectures. The interpreter uses the opcode mapping for dynamic lookup to enable the simultaneous execution of standard and obfuscated applications.We validate the framework’s robustness using a suite of 20 complex, real-world applications.The test corpus includes computationally demanding software such as full-featured web browsers, media editors, and cryptographic financial tools. The solution achieves an 85% compatibility rate with negligible impact on launch latency.Algorithmic benchmarks reveal an execution overhead between 11% and 30% due to mandatory opcode lookup. However, this performance trade-off yields substantial resilience against reverse engineering.Standard decompilers such as JADX generate semantically incorrect code.Similarly, dynamic instrumentation tools such as Frida fail to hook methods because they rely on standard runtime structures.Consequently, the framework targets high-security environments where the organization retains firmware control. In such contexts, the robust protection justifies the loss of portability.
en
dc.language
English
-
dc.language.iso
en
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
Softwareverschleierung
de
dc.subject
Android Runtime
de
dc.subject
Opcode Permutation
de
dc.subject
Mobile Sicherheit
de
dc.subject
Reverse Engineering
de
dc.subject
Virtualisierungsbasierte Verschleierung
de
dc.subject
software obfuscation
en
dc.subject
Android Runtime
en
dc.subject
opcode permutation
en
dc.subject
mobile security
en
dc.subject
reverse engineering
en
dc.subject
virtualization-based obfuscation
en
dc.title
Virtualization-based Code Obfuscation via Android Runtime Permutation
en
dc.type
Thesis
en
dc.type
Hochschulschrift
de
dc.rights.license
In Copyright
en
dc.rights.license
Urheberrechtsschutz
de
dc.identifier.doi
10.34726/hss.2026.130267
-
dc.contributor.affiliation
TU Wien, Österreich
-
dc.rights.holder
Mario Lecker
-
dc.publisher.place
Wien
-
tuw.version
vor
-
tuw.thesisinformation
Technische Universität Wien
-
dc.contributor.assistant
Bleier, Jakob
-
tuw.publication.orgunit
E192 - Institut für Logic and Computation
-
dc.type.qualificationlevel
Diploma
-
dc.identifier.libraryid
AC17801505
-
dc.description.numberOfPages
118
-
dc.thesistype
Diplomarbeit
de
dc.thesistype
Diploma Thesis
en
dc.rights.identifier
In Copyright
en
dc.rights.identifier
Urheberrechtsschutz
de
tuw.advisor.staffStatus
staff
-
tuw.assistant.staffStatus
staff
-
tuw.advisor.orcid
0000-0001-7001-4481
-
tuw.assistant.orcid
0009-0003-5927-7119
-
item.openairecristype
http://purl.org/coar/resource_type/c_bdcc
-
item.grantfulltext
open
-
item.cerifentitytype
Publications
-
item.openairetype
master thesis
-
item.mimetype
application/pdf
-
item.languageiso639-1
en
-
item.fulltext
with Fulltext
-
item.openaccessfulltext
Open Access
-
crisitem.author.dept
E194 - Institut für Information Systems Engineering