Компоновщик MSVC не будет применять RandomizedBaseAddress через файл vsprops
Я пытаюсь добавить ASLR в проект, используя файл VSPROPS. Я убедился, что файл используется проектом, так как в файле применяются другие параметры, и намеренное повреждение файла приводит к ошибке при открытии проекта в MSVC. Когда я устанавливаю ASLR в yes
я могу видеть RandomizedBaseAddress="2"
под <Tool Name=VCLinkerTool
,
но... это не имеет никакого эффекта. Я также могу поставить RandomizedBaseAddress="xxxxx"
и это не волнует Это как если бы этот параметр для компоновщика не был выбран. Я тоже пробовал GenerateDebugInformation="True"
это еще один параметр, который я видел в других файлах vsprops, и он тоже игнорируется. Как будто компоновщик игнорирует файл vsprops или эти настройки в нем.
Что дает? Кто-нибудь видел это раньше?
2 ответа
В файле проекта для этих параметров явно указано "default", что переопределяет файл vsprops. Явная установка этих элементов на "наследование от родительских или проектных значений по умолчанию" устранила проблему. Спасибо за все ответы.
Что заставляет вас думать, что это не работает? Изображение может загружаться по тому же адресу исключительно потому, что система решает загрузить его туда, а не потому, что его запрашивает размещение там, однако вторая загрузка должна быть по другому адресу, если вторая загрузка не выполняется после перезагружать. Также ASLR только для Vista и выше, Windows XP не будет пытаться рандомизировать его вообще, он просто загрузит его в первый доступный слот