Summarizing and comparing basic blocks or functions across different binaries or between binary and source code has many applications for program verification including verifying compilation, source or binary transformations, identifying patched code, and identifying library functions. This talk will present IRAD research on using static symbolic execution to prove source and binary function equivalence, with a focus on how breaking up functions or basic blocks into smaller, composable units can make the analysis tractable and bypass many common issues with symbolic execution.
- Tags
-