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,然后修改为0081即可;或者找到WORD IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE这个字段 ,把值1改为0即可;
看下图NT头的区域;里面没有4081;也许版本发生了变化;