DocumentCode :
635198
Title :
Segmented symbolic analysis
Author :
Wei Le
Author_Institution :
Rochester Inst. of Technol., Rochester, NY, USA
fYear :
2013
fDate :
18-26 May 2013
Firstpage :
212
Lastpage :
221
Abstract :
Symbolic analysis is indispensable for software tools that require program semantic information at compile time. However, determining symbolic values for program variables related to loops and library calls is challenging, as the computation and data related to loops can have statically unknown bounds, and the library sources are typically not available at compile time. In this paper, we propose segmented symbolic analysis, a hybrid technique that enables fully automatic symbolic analysis even for the traditionally challenging code of library calls and loops. The novelties of this work are threefold: 1) we flexibly weave symbolic and concrete executions on the selected parts of the program based on demand; 2) dynamic executions are performed on the unit tests constructed from the code segments to infer program semantics needed by static analysis; and 3) the dynamic information from multiple runs is aggregated via regression analysis. We developed the Helium framework, consisting of a static component that performs symbolic analysis and partitions a program, a dynamic analysis that synthesizes unit tests and automatically infers symbolic values for program variables, and a protocol that enables static and dynamic analyses to be run interactively and concurrently. Our experimental results show that by handling loops and library calls that a traditional symbolic analysis cannot process, segmented symbolic analysis detects 5 times more buffer overflows. The technique is scalable for real-world programs such as putty, tightvnc and snort.
Keywords :
program compilers; program diagnostics; regression analysis; software libraries; software tools; buffer overflow; code segments; concrete execution; dynamic analysis; dynamic executions; handling loops; helium framework; library calls; library loops; program semantic information; program semantics; program variables; regression analysis; segmented symbolic analysis; software tools; static analysis; static component; symbolic execution; symbolic partitions; Analytical models; Cognition; Helium; Libraries; Performance analysis; Regression analysis; Semantics;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering (ICSE), 2013 35th International Conference on
Conference_Location :
San Francisco, CA
Print_ISBN :
978-1-4673-3073-2
Type :
conf
DOI :
10.1109/ICSE.2013.6606567
Filename :
6606567
Link To Document :
بازگشت