This document discusses Ravel, a system for locating vulnerabilities from detected attacks. Ravel records non-deterministic inputs during program execution and replays them with instrumentation to reproduce attacks offline. It then uses data flow analysis and other techniques to pinpoint the underlying vulnerability by detecting violations between the program's control and data flows. The system was able to accurately locate vulnerabilities like buffer overflows, integer errors, and use-after-frees in evaluated programs.
Related topics: