You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows ASLR是否基于会话?实验结果不符的原因探究

为什么不同RDP会话中DLL地址完全相同?
  • 你搞混了Windows ASLR的两种随机化层级:
    系统核心DLL(比如ntdll.dll、kernel32.dll)加载在系统共享地址空间,它们的基地址是系统启动时一次性随机化的,所有会话里的进程都会复用这个地址,不会随会话变化。这部分DLL不属于会话级随机化的范畴。

  • 会话级ASLR只作用于用户态非核心DLL/可执行文件,而且得满足两个前提:

    1. 目标程序编译时开启了/DYNAMICBASE编译选项(这是启用ASLR的基础)
    2. 系统没有禁用会话级ASLR(默认是开启的,可通过注册表HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management下的MoveImages项查看,值为0x1是开启状态)
  • 你的实验大概率是测试了系统核心DLL,所以不同RDP会话里地址完全一致。如果换成自己编译的、开启了/DYNAMICBASE的自定义DLL,再去不同会话运行测试,就能看到地址差异了。

内容的提问来源于stack exchange,提问作者yyyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:05:17