Come disabilitare ASLR su Windows 7 x64 in modo che il mio programma carichi sempre il CRT condiviso allo stesso indirizzo?Come si disabilita ASLR (randomizzazione del layout di spazio degli indirizzi) su Windows 7 x64?
risposta
Un'impostazione del Registro di sistema è disponibile per abilitare o disabilitare forzatamente ASLR per tutti i file eseguibili e le librerie e si trova in HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages
.
Non modificare le impostazioni globali del sistema per far funzionare * il tuo * –
+1 Ci proverò. Sembra essere quello di cui ho bisogno, dal momento che cambiarlo in base al programma non influirà sul modo in cui viene caricato il CRT (condiviso). – Mehrdad
^Questo. Ma dovresti ricordare che se questa è un'applicazione distribuita, non dovresti farlo, e se è un MUST ASSOLUTO, chiedi all'utente prima di farlo programmaticamente. –
In precedenza si doveva optare per consentire al linker di utilizzare ASLR. Ora, you have to opt out:
/DYNAMICBASE[:NO]
(Visual Studio 2012: le proprietà di configurazione -> Linker -> Avanzate -> "Base Indirizzo Randomized")
Si può anche farlo programmatically.
Questo è molto utile quando si ha un progetto di cui si sta eseguendo il debug e si preferisce che gli indirizzi nella finestra di controllo non cambino ogni volta. – EvilTeach
Il Enhanced Mitigation Experience Toolkit (EMET), downloadable from Microsoft, consente di abilitare/disabilitare ASLR su un sistema o processo base.
Avete _need_ per fare ciò o semplicemente per semplificare qualcosa? –
@unclebrad: ho davvero * bisogno * di fare questo. – Mehrdad
Si noti che questo degrada in modo significativo la sicurezza del sistema e dovrebbe essere fatto solo con il permesso dell'utente. –