Smali+: An operational semantics for low-level code generated from reverse engineering android applications

5Citations
Citations of this article
11Readers
Mendeley users who have this article in their library.

Abstract

Today, Android accounts for more than 80% of the global market share. Such a high rate makes Android applications an important topic that raises serious questions about its security, privacy, misbehavior and correctness. Application code analysis is obviously the most appropriate and natural means to address these issues. However, no analysis could be led with confidence in the absence of a solid formal foundation. In this paper, we propose a full-fledged formal approach to build the operational semantics of a given Android application by reverse-engineering its assembler-type code, called Smali. We call the new formal language Smali+. Its semantics consist of two parts. The first one models a single-threaded program, in which a set of main instructions is presented. The second one presents the semantics of a multi-threaded program which is an important feature in Android that has been glossed over in the-state-of-the-art works. All multi-threading essentials such as scheduling, threads communication and synchronization are considered in these semantics. The resulting semantics, forming Smali+, are intended to provide a formal basis for developing security enforcement, analysis and misbehaving detection techniques for Android applications.

Cite

CITATION STYLE

APA

Ziadia, M., Fattahi, J., Mejri, M., & Pricop, E. (2020). Smali+: An operational semantics for low-level code generated from reverse engineering android applications. Information (Switzerland), 11(3). https://doi.org/10.3390/info11030130

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free