NativeSummary: Summarizing Native Binary Code for Inter-language Static Analysis of Android Apps

被引:0
作者
Wang, Jikai [1 ,2 ]
Wang, Haoyu [1 ,2 ]
机构
[1] Huazhong Univ Sci & Technol, Wuhan, Peoples R China
[2] Sch Cyber Sci & Engn, HUST, Hubei Engn Res Ctr Big Data Secur, Hubei Key Lab Distributed Syst Secur, Wuhan, Peoples R China
来源
PROCEEDINGS OF THE 33RD ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2024 | 2024年
基金
中国国家自然科学基金; 国家重点研发计划;
关键词
Android; Static Analysis; Mobile Security;
D O I
10.1145/3650212.3680335
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
With the prosperity of Android app research in the last decade, many static analysis techniques have been proposed. They generally aim to tackle DEX bytecode in Android apps. Beyond DEX byte code, native code (usually written in C/C++) is prevalent in modern Android apps, whose analysis is usually overlooked by most existing analysis frameworks. Although a few recent works attempted to handle native code, they suffer from scalability and accuracy issues. In this paper, we propose NATIVESUMMARY, a novel inter-language static analysis framework for Android apps with high accuracy, scalability, and compatibility. Our key idea is to extract semantic summary of the native binary code, then convert common usage patterns of JNI interface functions into Java bytecode operations, and additionally transform native library function calls to byte code calls. Along with this effort, we can empower the legacy Java static frameworks with the ability of inter-language data flow analysis without tampering their inherent logic. Extensive evaluation suggests that NATIVESUMMARY outperforms SOTA techniques in terms of accuracy, scalability and compatibility. NATIVESUMMARY sheds light on the promising direction of inter-language analysis, and thousands of existing app analysis works can be boosted atop NATIVESUMMARY with almost no effort.
引用
收藏
页码:971 / 982
页数:12
相关论文
共 44 条
  • [1] [Anonymous], 2023, NativeFlowBenchExtended
  • [2] [Anonymous], 2022, jadx
  • [3] [Anonymous], 2022, AppShark
  • [4] [Anonymous], 2023, NativeSummary
  • [5] [Anonymous], 2022, BinAbsInspector
  • [6] [Anonymous], 2022, libgdx
  • [7] Arzt S, 2014, ACM SIGPLAN NOTICES, V49, P259, DOI [10.1145/2594291.2594299, 10.1145/2666356.2594299]
  • [8] WYSINWYX: What You See Is Not What You eXecute
    Balakrishnan, Gogul
    Reps, Thomas
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2010, 32 (06):
  • [9] Balzarotti Davide, 2022, The Dark Side of Native Code on Android
  • [10] AnDarwin: Scalable Detection of Android Application Clones Based on Semantics
    Crussell, Jonathan
    Gibler, Clint
    Chen, Hao
    [J]. IEEE TRANSACTIONS ON MOBILE COMPUTING, 2015, 14 (10) : 2007 - 2019