Да, флаг NXCOMPAT включен стандартными компиляторами .NET с .NET 2.0 SP1.
ASLR по существу является автоматическим в программах .NET благодаря JIT-компилятору. Там, где он будет размещен JIT-скомпилированный машинный код, непредсказуем. Несмотря на то, что он, вероятно, будет повторяться на той же машине с тем же самым номером ревизии CLR и точно таким же потоком кода запуска, и с теми же DLL, которые вводятся в процесс. Тем не менее, это не так легко настроить. Ngen-ed сборки .NET поддерживают ASLR с момента выпуска .NET 3.5 SP1.
Гораздо более мощным является ASLR для данных, более важная контрмера против атак. Важно, потому что подавляющее большинство атак начинается с вредоносных данных. Каждый раз, когда вы запускаете свою программу, меняется местоположение стека потока, кучи GC и статических данных. Может быть довольно больно, что вы пытаетесь отладить AVE btw.
ASLR защищает от известных неполадок безопасности. Прежде всего, недостаток безопасности должен существовать, что редко встречается в проверяемом коде.
Под «ngen-ed», вы имеете в виду компиляцию в x86/x64 вместо «Any CPU»? –
Нет, я имею в виду инструмент ngen.exe. http://msdn.microsoft.com/en-us/library/6t9t5wcf%28VS.90%29.aspx –
ngen поддерживает ASLR в 3.5 SP1 и предположительно также (?) 4.0: http://msdn.microsoft.com/ en-us/magazine/dd569747.aspx # id0400023 –