previous index next

The hijack of control breaks assumptions on how the program behaves, violating its execution model. For example, nearly all programs follow a calling convention where a return address must point to the caller. Yet the hardware imposes no restrictions on return address targets, allowing an attacker who overwrites a return address to successfully divert control flow to malicious code.

  Copyright © 2004 Derek Bruening