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.
Mario Lecker (Sun,) studied this question.