Address Space Layout Randomization (ASLR) was introduced in 2001 by PaX project as a Linux patch and was integrated into Windows Vista and later OSes. It is a memory protection that protects against buffer overflows by randomizing the location where executables are loaded in the memory. Data Execution Prevention (DEP) or no-execute (NX) was also introduced with Internet Explorer 7 on Windows Vista, and it helps prevent buffer overflows by blocking code execution from memory, which is marked as non-executable.