-
-
[原创]基址重定位与ASLR
-
发表于:
2020-4-6 16:15
5784
-
前言:基址重定位跟ASLR技术的知识点在书中会一起出现,借此捋清一下他们的关系。
-----------------------------------------------------------------------------------------------------------------------
基址重定位
概念:在加载DLL(SYS)文件时,如果在该ImageBase(映像基址)已经加载了其他DLL(SYS)文件,那么该文件会被加载到其他未被占用的空间。而EXE文件会被先加载,所以不用考虑空间被占用而重定位的问题。此外,由于系统的DLL有固定的ImageBase,所以也没有重定位的问题。
应用及影响:在使用如upx壳这般会压缩重定位表的壳时,可能会出现问题。
具体相关请看xhbuming先生的帖子:https://bbs.pediy.com/thread-199895.htm
ASLR(Address Space Layout Randomization,地址空间布局随机化)
概念:顾名思义,每次PE文件加载进内存时起始地址都会随机变化,并且每次运行程序时相应进程的栈以及堆的起始地址也会随机改变。
使用这种PE加载技术的缘由:针对缓冲区溢出的安全保护技术,为了增加系统安全性。
使用条件:OS的内核版本6以上,且编程工具支持/DYNAMICBASE选项。
以Microsoft Visual Studio 2010为例:
在项目处(ebp_t)右键->属性->链接器->高级->随机基址
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)