Publications

The C and C++ programming languages are notoriously insecure yet remain indispensable. Developers therefore resort to a multi-pronged …

Adversaries exploit memory corruption vulnerabilities to hijack a program’s control flow and gain arbitrary code execution. One …

Code-reuse attacks continue to evolve and remain a severe threat to modern software. Recent research has proposed a variety of defenses …

Code-reuse attacks such as return-oriented programming (ROP) pose a severe threat to modern software. Designing practical and effective …

We explore software diversity as a defense against side-channel attacks by dynamically and systematically randomizing the control flow …

A new binary software randomization and Control-Flow Integrity (CFI) enforcement system is presented, which is the first to resist …

Memory corruption vulnerabilities not only allow modification of control data and injection of malicious payloads; they also allow …

The idea of automatic software diversity is at least two decades old. The deficiencies of currently deployed defenses and the …

Just-in-time compilers (JITs) are here to stay. Unfortunately, they also provide new capabilities to cyber attackers, namely the …

Code-reuse attacks are notoriously hard to defeat, and most current solutions to the problem focus on automated software diversity. …