Triggering deep vulnerabilities using symbolic execution

Symbolic Execution (SE) is a powerful way to analyze programs. Instead of using concrete data values SE uses symbolic values to evaluate a large set of parallel program paths at once.

A drawback of many systems is that they need source code access and only scale to few lines of code.

This talk from the 30th Chaos Communication Congress explains how SE and binary analysis can be used to reverse-engineer components of binary only applications and construct specific concrete input that triggers a given condition deep inside the application (think of defining an error condition and the SE engine constructs the input to the application that triggers the error).