Class Loaders in the Middle: Confusing Android Static Analyzers

When executing a mobile application, Android executes either the classes provided by the developer or the ones provided by the operating system. The dynamic linking and loading of the different classes is a complex task that may be exploited by an attacker. In particular, if the developer adds a class whose name collides with another class of Android, they may confuse a reverse engineer. In this article, we explore the possible collisions that can occur between classes defined multiple times at different locations, i.e., multiple times in the APK file or, at the same time, in the APK and the operating system. We highlight three attacks that we call shadow attacks. In particular, we show that static analysis tools used by a reverse engineer choose the shadow implementation for most of the evaluated tools, and output a wrong result. In particular, the flow analysis of Androguard or Flowdroid can be fooled by an attacker. In a dataset of 49,975 applications, we also explored if shadow attacks are used in the wild and found that most of the time, there is no malicious behavior behind them. The main results are that 23.52% of applications shadow a class of the SDK and 3.11% a hidden class of the system.

Authors

Institutions

Publication Details

Journal
Digital Threats Research and Practice
Published
2025-07-24
DOI
https://doi.org/10.1145/3754457
Citations
1
Primary Topic
Advanced Malware Detection Techniques
Type
article
Field-Weighted Citation Impact
1.49
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Class Loaders in the Middle: Confusing Android Static Analyzers

Jean-François Lalande, Jean-Marie Mineau
1 citations
Digital Threats Research and Practice
Advanced Malware Detection Techniques
1.49
article

Class Loaders in the Middle: Confusing Android Static Analyzers

Jean-François Lalande, Jean-Marie Mineau
article en
1 citations

Abstract

When executing a mobile application, Android executes either the classes provided by the developer or the ones provided by the operating system. The dynamic linking and loading of the different classes is a complex task that may be exploited by an attacker. In particular, if the developer adds a class whose name collides with another class of Android, they may confuse a reverse engineer. In this article, we explore the possible collisions that can occur between classes defined multiple times at different locations, i.e., multiple times in the APK file or, at the same time, in the APK and the operating system. We highlight three attacks that we call shadow attacks. In particular, we show that static analysis tools used by a reverse engineer choose the shadow implementation for most of the evaluated tools, and output a wrong result. In particular, the flow analysis of Androguard or Flowdroid can be fooled by an attacker. In a dataset of 49,975 applications, we also explored if shadow attacks are used in the wild and found that most of the time, there is no malicious behavior behind them. The main results are that 23.52% of applications shadow a class of the SDK and 3.11% a hidden class of the system.

Digital Threats Research and PracticeVol. 6(3)
Centre National de la Recherche Scientifique (FR), CentraleSupélec (FR)
Openalex Percentile: Top 17%
Advanced Malware Detection Techniques
1.49
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Class Loaders in the Middle: Confusing Android Static Analyzers — Jean-François Lalande, Jean-Marie Mineau · Digital Threats Research and Practice (2025) | TGRS Research Map | TGRS