Bleier, J., & Lindorfer, M. (2023). Of Ahead Time: Evaluating Disassembly of Android Apps Compiled to Binary OATs Through the ART. In J. Polakis & E. van der Kouwe (Eds.), EUROSEC ’23: Proceedings of the 16th European Workshop on System Security (pp. 21–29). https://doi.org/10.1145/3578357.3591219
EUROSEC '23: Proceedings of the 16th European Workshop on System Security
-
ISBN:
979-8-4007-0085-9
-
Date (published):
May-2023
-
Event name:
EUROSEC '23: European Workshop on System Security
en
Event date:
8-May-2023
-
Event place:
Rome, Italy
-
Number of Pages:
9
-
Peer reviewed:
Yes
-
Keywords:
Android Runtime; Bytecode vs Binary; Static analysis; Disassembly
en
Abstract:
The Android operating system has evolved significantly since its initial release in 2008. Most importantly, in a continuing effort to increase the run-time performance of mobile applications (apps) and to reduce resource requirements, the way code is executed has transformed from being bytecode-based to a binary-based approach: Apps are still mainly distributed as Dalvik bytecode, but the Android Runtime (ART) uses an optimizing compiler to create binary code ahead-of-time (AOT), just-in-time (JIT), or as a combination of both. These changes in the build pipeline, including increasing obfuscation and optimization of the Dalvik bytecode, invalidate assumptions of bytecode-based static code analysis approaches through identifier renaming and code shrinking. Furthermore, customized apps can be distributed pre-compiled with devices’ firmware, sidestepping the bytecode altogether. Finally, Android apps have always relied on native binary code libraries for performance-critical tasks. We propose to narrow the gap between bytecode and binary code by leveraging the ART compiler’s capability to create well-formed ELF binaries, called OATs, as the basis for further static code analysis. To this end, we created a pipeline to automatically and efficiently compile APKs to OATs into a benchmark dataset of 1,339 apps. We then evaluate five popular disassemblers based on how well they can analyze these OATs based on how well they can detect function boundaries. Our results, in particular, compared to the success rate of two bytecode-based analyzers, demonstrate that our OAT-based approach can help to bring a wider set of code analysis tools and techniques to the area of Android app analysis.
en
Project title:
IoTIO: Analyse des Internet der Unsicheren Dinge: ICT19-056 (WWTF Wiener Wissenschafts-, Forschu und Technologiefonds) Sicherheits- und Datenschutzgrundlagen von Blockchain-Technologien: COMET SBA-K1 (SBA Research gemeinnützige GmbH)