ABSTRACT

Buffer overflow attacks are the result of specially-

crafted data that are inserted into a vulnerable buffer

causing the execution of arbitrary code. This is known as

exploit code. “Arbitrary code” in this context means pro-

grams existing on the vulnerable system or new program

logic written to the system through the exploited buffer.

The new logic might be contained entirely in memory, or it

could be written to the file system so that the exploit can be

continued if the system is restarted. In either case, the

exploit code frequently initiates new threads of execution

that are manipulated by the attacker. These new threads of

execution are often malicious code such as viruses, worms,

or Trojan horses.