Check out the new USENIX Web site. next up previous
Next: Defragment Up: Technique Previous: Context

Overview

Keep in mind that the goal is to control a buffer in the heap immediately following the vulnerable buffer. We accomplish this by arranging the heap so that all holes in it that are big enough to hold the vulnerable buffer are surrounded by buffers that we control.

The technique consists of five steps.

  1. Defragment the heap.
  2. Make holes in the heap.
  3. Prepare the blocks around the holes.
  4. Trigger allocation and overflow.
  5. Trigger the jump to shellcode.
These steps are described in more detail in the rest of this section.



jake 2008-07-14