Despite advances in software design and static analysis techniques, software remains incredibly complicated and difficult to reason about. Understanding highly-concurrent, kernel-level, and intentionally-obfuscated programs are among the problem domains that spawned the field of dynamic program analysis. More than mere debuggers, the challenge of dynamic analysis tools is to be able record, analyze, and replay execution without sacrificing performance. This talk will provide an introduction to the dynamic analysis research space and hopefully inspire you to consider integrating these techniques into your own internal tools.
-
Framework for Instruction-level Tracing and Analysis of Program Executions
-
Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation
-
Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation
-
ReVirt: Enabling Intrusion Analysis through Virtual-Machine Logging and Replay
-
Debugging Operating Systems with Time-Traveling Virtual Machines
-
Pointless Tainting? Evaluating the Practicality of Pointer Tainting