1 ASLR机制
Address Space Layout Randomization=地址空间布局随机化;
是一种针对缓冲区溢出的安全保护技术;
没有ASLR时,每次进程执行,加载到内容中,代码所处堆栈stack的位置都是相同的,容易被破解;
如果开启了ASLR,操作系统加载器会针对基地址再去加上一个随机生成的偏移地址,然后再去加载程序模块,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度。
地址随机化需要程序自身和操作系统的双重支持,会在PE头中设置IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE标识来说明支持ASLR。
此字段位于PE结构的可选头结构体中;可选头的概念可参阅此,
https://blog.csdn.net/bcbobo21cn/article/details/115032841
2 PE操作
下面来用010Editer操作看一下,打开010Editor,打开notepad.exe;
根据资料,在 NtHeader 数据块内找到4081,