Smali+: An Operational Semantics for Low-Level Code Generated from Reverse Engineering Android Applications

被引:4
|
作者
Ziadia, Marwa [1 ]
Fattahi, Jaouhar [1 ]
Mejri, Mohamed [1 ]
Pricop, Emil [2 ]
机构
[1] Laval Univ, Dept Comp Sci & Software Engn, Pavillon Adrien Pouliot 1065,Ave Med, Quebec City, PQ G1V 0A6, Canada
[2] Petr Gas Univ Ploiesti, Automat Control Comp & Elect Dept, Ploiesti 100680, Romania
基金
加拿大自然科学与工程研究理事会;
关键词
Android applications; multi-threading; operational semantics; reverse engineering; Smali(+);
D O I
10.3390/info11030130
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页数:23
相关论文
共 21 条
  • [1] CBIR: From low-level features to high-level semantics
    Zhou, XS
    Huang, TS
    IMAGE AND VIDEO COMMUNICATIONS AND PROCESSING 2000, 2000, 3974 : 426 - 431
  • [2] On the Use of Underspecified Data-Type Semantics for Type Safety in Low-Level Code
    Tews, Hendrik
    Volp, Marcus
    Weber, Tjark
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2012, (102): : 73 - 87
  • [3] From low-level features to high-level semantics: Are we bridging the gap?
    Chen, TH
    ISM 2005: SEVENTH IEEE INTERNATIONAL SYMPOSIUM ON MULTIMEDIA, PROCEEDINGS, 2005, : 179 - 179
  • [4] A Framework for OS Portability: from Formal Models to Low-level Code
    Gomes, Renata Martins
    Baunach, Marcel
    37TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, 2022, : 1156 - 1165
  • [5] Converting Parallel Code from Low-Level Abstractions to Higher-Level Abstractions
    Okur, Semih
    Erdogan, Cansu
    Dig, Danny
    ECOOP 2014 - OBJECT-ORIENTED PROGRAMMING, 2014, 8586 : 515 - 540
  • [6] A REVERSE ENGINEERING PROCESS FOR DESIGN LEVEL DOCUMENT PRODUCTION FROM ADA CODE
    CANFORA, G
    CIMITILE, A
    DECARLINI, U
    INFORMATION AND SOFTWARE TECHNOLOGY, 1993, 35 (01) : 23 - 34
  • [7] A REVERSE ENGINEERING PROCESS FOR DESIGN LEVEL DOCUMENT PRODUCTION FROM ADA CODE
    CANFORA, G
    CIMITILE, A
    DECARLINI, U
    MICROPROCESSORS AND MICROSYSTEMS, 1991, 15 (10) : 531 - 542
  • [8] From low-level geometric features to high-level semantics: An axiomatic fuzzy set clustering approach
    Li, Qilin
    Ren, Yan
    Li, Ling
    Liu, Wanquan
    JOURNAL OF INTELLIGENT & FUZZY SYSTEMS, 2016, 31 (02) : 775 - 786
  • [9] A framework for embedded software portability and verification: from formal models to low-level code
    Renata Martins Gomes
    Bernhard Aichernig
    Marcel Baunach
    Software and Systems Modeling, 2024, 23 : 289 - 315
  • [10] A framework for embedded software portability and verification: from formal models to low-level code
    Gomes, Renata Martins
    Aichernig, Bernhard
    Baunach, Marcel
    SOFTWARE AND SYSTEMS MODELING, 2024, 23 (02): : 289 - 315