In Depth Protection -- Malicious software is often designed to take advantage of buffer overflows on a computer system and use inherent weaknesses in the system to install overtly themselves onto a system. Essentially they trick software into running code that they have secretly placed in areas set aside to store data on the computer.
A good way to decrease the possible problems associated with individuals taking advantage of these weaknesses is through the use of no-execute technologies (NX) at the hardware level of the system. NX gives software the ability to mark specific sections of the system memory as being just for data, so the processor will stop applications and services from carrying out any code stored in there.
Microsoft has provided protection for no-execute technologies (NX) since Windows XP SP2 through the Data Execution Prevention feature.
Windows now has Address Space Layout Randomization (ASLR), a defense feature in Windows Vista and Windows 7 that makes it more difficult for malicious code to take advantage of a system function. ASLR randomly assigns executable images to one of 256 different places in memory; this in turn makes this activity more difficult for the malicious code to find and use the functionality inside the executable images.