如何在Windows 7 x64上禁用ASLR(地址空间布局随机化)?

zvms9eto  于 2023-05-23  发布在  Windows
关注(0)|答案(4)|浏览(166)

如何在Windows 7 x64上禁用ASLR,以便我的程序始终在相同的地址加载共享CRT?

piv4azn7

piv4azn71#

以前,您必须选择允许链接器使用ASLR。现在,you have to opt out

/DYNAMICBASE[:NO]

(Visual Studio 2012:配置属性->链接器->高级->“随机化基址”)
你也可以做programmatically

b4lqfgs4

b4lqfgs42#

增强型缓解体验工具包( emmet )downloadable from Microsoft允许在系统或进程基础上启用/禁用ASLR。

djp7away

djp7away3#

可以在HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages中找到一个注册表设置,用于强制启用或禁用所有可执行文件和库的ASLR。

klr1opcd

klr1opcd4#

方法一(全局禁用)

  • (如上面的注解所述,这可能不适合您的系统,也许您可以在完成小任务后恢复它)*

在cmd/Batch中,您可以尝试添加以下两个值:

REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v MoveImages /t REG_DWORD /d 0 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel" /v MitigationOptions /t REG_BINARY /d "00000000000000000000000000000000" /f

方法2 -仅针对特定应用禁用

关于powershell:

Get-Item -Path "C:\Program Files\Git\usr\bin\*.exe" | %{ Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateImages }

或者在实验app的帮助下:

cd %tmp%
wget http://www.didierstevens.com/files/software/setdllcharacteristics_v0_0_0_1.zip -o sdc.zip
Expand-Archive -Path sdc.zip -DestinationPath ./
./setdllcharacteristics.exe -d "C:\path\to\your\app.exe"

相关问题