Executable Space Protection

In a lot of attacks an attacker is writning in the code that they want executed into the variable that is used by the program and then over writing the return address to point to this code. Executable Space Protection aims at fixing this by not allowing certain parts of the stack or heap to be executed. This protects agains this one type of attack however it still allows an attacker to run existing code and change variables that they wish. This is another piece of code intended to protect the user from vulnerable programs but that does not protect the program from malicious users.