Компоновщик MSVC не будет применять RandomizedBaseAddress через файл vsprops - PullRequest
1 голос
/ 18 октября 2010

Я пытаюсь добавить ASLR в проект, используя файл vsprops.Я убедился, что файл используется проектом, так как в файле применяются другие параметры, и намеренное повреждение файла приводит к ошибке при открытии проекта в MSVC.Когда я устанавливаю ASLR на yes, я вижу RandomizedBaseAddress="2" в <Tool Name=VCLinkerTool.

, но ... Это не имеет никакого эффекта.Я также могу поставить RandomizedBaseAddress="xxxxx", и это не волнует.Это как если бы этот параметр для компоновщика не был выбран.Я также попробовал GenerateDebugInformation="True", что является еще одним параметром, который я видел в других файлах vsprops, и это тоже игнорируется.Это как если бы компоновщик игнорировал файл vsprops или эти настройки в нем.

Что дает?Кто-нибудь видел это раньше?

Ответы [ 2 ]

1 голос
/ 19 октября 2010

В файле проекта явно указано «default» для этих параметров, что переопределяет файл vsprops.Явная установка этих элементов на «наследование от родительских или проектных значений по умолчанию» устранила проблему.Спасибо за все ответы.

0 голосов
/ 18 октября 2010

Что заставляет вас думать, что это не работает? Образ может загружаться по тому же адресу исключительно потому, что система решает загрузить его туда, а не потому, что его запрашивает размещение там, однако вторая загрузка должна быть по другому адресу, если вторая загрузка не выполняется после перезагружать. Также ASLR предназначен только для Vista и выше, Windows XP вообще не будет пытаться рандомизировать его, он просто загрузит его в первый доступный слот

...