TY - GEN
T1 - Composite constant propagation
T2 - 37th IEEE/ACM International Conference on Software Engineering, ICSE 2015
AU - Octeau, Damien
AU - Luchaup, Daniel
AU - Dering, Matthew
AU - Jha, Somesh
AU - McDaniel, Patrick
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2015/8/12
Y1 - 2015/8/12
N2 - Many program analyses require statically inferring the possible values of composite types. However, current approaches either do not account for correlations between object fields or do so in an ad hoc manner. In this paper, we introduce the problem of composite constant propagation. We develop the first generic solver that infers all possible values of complex objects in an interprocedural, flow and context-sensitive manner, taking field correlations into account. Composite constant propagation problems are specified using COAL, a declarative language. We apply our COAL solver to the problem of inferring Android Inter-Component Communication (ICC) values, which is required to understand how the components of Android applications interact. Using COAL, we model ICC objects in Android more thoroughly than the state-of-the-art. We compute ICC values for 460 applications from the Play store. The ICC values we infer are substantially more precise than previous work. The analysis is efficient, taking slightly over two minutes per application on average. While this work can be used as the basis for many whole-program analyses of Android applications, the COAL solver can also be used to infer the values of composite objects in many other contexts.
AB - Many program analyses require statically inferring the possible values of composite types. However, current approaches either do not account for correlations between object fields or do so in an ad hoc manner. In this paper, we introduce the problem of composite constant propagation. We develop the first generic solver that infers all possible values of complex objects in an interprocedural, flow and context-sensitive manner, taking field correlations into account. Composite constant propagation problems are specified using COAL, a declarative language. We apply our COAL solver to the problem of inferring Android Inter-Component Communication (ICC) values, which is required to understand how the components of Android applications interact. Using COAL, we model ICC objects in Android more thoroughly than the state-of-the-art. We compute ICC values for 460 applications from the Play store. The ICC values we infer are substantially more precise than previous work. The analysis is efficient, taking slightly over two minutes per application on average. While this work can be used as the basis for many whole-program analyses of Android applications, the COAL solver can also be used to infer the values of composite objects in many other contexts.
UR - http://www.scopus.com/inward/record.url?scp=84951857780&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84951857780&partnerID=8YFLogxK
U2 - 10.1109/ICSE.2015.30
DO - 10.1109/ICSE.2015.30
M3 - Conference contribution
AN - SCOPUS:84951857780
T3 - Proceedings - International Conference on Software Engineering
SP - 77
EP - 88
BT - Proceedings - 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, ICSE 2015
PB - IEEE Computer Society
Y2 - 16 May 2015 through 24 May 2015
ER -