Title :
Hercules: Reproducing Crashes in Real-World Application Binaries
Author :
Van-Thuan Pham ; Wei Boon Ng ; Rubinov, Konstantin ; Roychoudhury, Abhik
Author_Institution :
Sch. of Comput., Nat. Univ. of Singapore, Singapore, Singapore
Abstract :
Binary analysis is a well-investigated area in software engineering and security. Given real-world program binaries, generating test inputs which cause the binaries to crash is crucial. Generation of crashing inputs has many applications including off-line analysis of software prior to deployment, or online analysis of software patches as they are inserted. In this work, we present a method for generating inputs which reach a given "potentially crashing" location. Such potentially crashing locations can be found by a separate static analysis (or by gleaning crash reports submitted by internal / external users) and serve as the input to our method. The test input generated by our method serves as a witness of the crash. Our method is particularly suited for binaries of programs which take in complex structured inputs. Experiments on real-life applications such as the Adobe Reader and the Windows Media Player demonstrate that our Hercules tool built on selective symbolic execution engine S2E can generate crashing inputs within few hours, where symbolic approaches (as embodied by S2E) or blackbox fuzzing approaches (as embodied by the commercial tool PeachFuzzer) failed.
Keywords :
security of data; software tools; Adobe Reader; Hercules tool; S2E; Windows Media Player; binary analysis; crash reproduction; selective symbolic execution engine; software engineering; software off-line analysis; software security; Ash; Computer crashes; Concrete; Heuristic algorithms; Hybrid power systems; Registers; Search problems; binary analysis; symbolic execution; test generation;
Conference_Titel :
Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on
Conference_Location :
Florence
DOI :
10.1109/ICSE.2015.99