DroidRA: taming reflection to support whole-program analysis of Android apps


Android developers heavily use reflection in their apps for legitimate reasons, but also significantly for hiding malicious actions. Unfortunately, current state-of-the-art static analysis tools for Android are challenged by the presence of reflective calls which they usually ignore. Thus, the results of their security analysis, e.g., for private data leaks, are inconsistent given the measures taken by malware writers to elude static detection. We propose the DroidRA instrumentation-based approach to address this issue in a non-invasive way. With DroidRA, we reduce the resolution of reflective calls to a composite constant propagation problem. We leverage the COAL solver to infer the values of reflection targets and app, and we eventually instrument this app to include the corresponding traditional Java call for each reflective call. Our approach allows to boost an app so that it can be immediately analyzable, including by such static analyzers that were not reflection-aware. We evaluate DroidRA on benchmark apps as well as on real-world apps, and demonstrate that it can allow state-of-the-art tools to provide more sound and complete analysis results.

DOI: 10.1145/2931037.2931044

Extracted Key Phrases

9 Figures and Tables

Citations per Year

Citation Velocity: 12

Averaging 12 citations per year over the last 2 years.

Learn more about how we calculate this metric in our FAQ.

Cite this paper

@inproceedings{Li2016DroidRATR, title={DroidRA: taming reflection to support whole-program analysis of Android apps}, author={Li Li and Tegawend{\'e} F. Bissyand{\'e} and Damien Octeau and Jacques Klein}, booktitle={ISSTA}, year={2016} }