期刊论文详细信息
Труды Института системного программирования РАН
Input data generation for reaching specific function in program by iterative dynamic analysis
A. Y. Gerasimov1  L. V. Kruglov2 
[1] Институт системного программирования РАН;Московский государственный университет имени М.В. Ломоносова;
关键词: статический анализ;    динамический анализ;    генерация входных данных;   
DOI  :  10.15514/ISPRAS-2016-28(5)-10
来源: DOAJ
【 摘 要 】

Dynamic symbolic execution is a well-known technique used for different tasks of program analysis: input generation for increasing test coverage for program, inputs of death generation, exploit generation and etc. But huge time costs of program analysis during dynamic symbolic execution for any real-life program is a well-known problem caused by path explosion and necessity of path constraint solving for every path with different SAT/SMT techniques which is a NP-complete task in general case. Brute force analysis of every path in program has limited practical sense for time limited analysis; instead different techniques and heuristics are used to improve analysis performance and reduce space of analysis for specific needs of analyst or while solving specific problem under analysis. We present our approach which combines static analysis of program binary code based on binutils library with dynamic symbolic execution tool based on Avalanche - an iterative dynamic analysis tool to perform targeted input data generation for reaching specific function in the program. As the first step of our algorithm we extract reduced program call graph which contains only calls to functions which ends with the function of interest, then we amplify this call graph with control flow graph inside of functions included into reduced call graph. Using the reduced control-flow graph of program which contain only calls and conditional jumps directions which lead to the function of interest we built the metric of best next analysis direction. This approach allows us to significantly (up to twelve times for some real world programs) reduce the time of reaching function of interest comparatively to brute force program paths analysis with inversion of every conditional jump at the execution path dependent on tainted data.

【 授权许可】

Unknown   

  文献评价指标  
  下载次数:0次 浏览次数:0次