Как включить рандомизацию адресного пространства исполняемого файла?
Примечание: я не использую Visual Studio или какой-либо компилятор, который предоставляет параметр компилятора /dynamicbase
.
Для целей этого обсуждения предположим, что я добавляю в компилятор функциональные возможности для включения ASLR.
Другие флаги PE
Есть и другие параметры исполняемого образа Windows, которые я уже знаю, как установить. Например, тогда IMAGE_FILE_NET_RUN_FROM_SWAP
флаг. Вы устанавливаете опцию PE в двоичном заголовке PE:
LOADED_IMAGE li;
MapAndLoad(fileName), null, li, false, false)
LI.FileHeader.FileHeader.Characteristics |= IMAGE_FILE_NET_RUN_FROM_SWAP;
UnMapAndLoad(li)
Как включить рандомизацию разметки адресного пространства? Это флаги PE? Это запись манифеста сборки?
Бонус
Как выбрать исполняемый файл в NX (без выполнения)?