1、知识点
微软从windows vista/windows server 2008(kernel version 6.0)开始采用ASLR技术,主要目的是为了防止缓冲区溢出
ASLR技术会使PE文件每次加载到内存的起始地址随机变化,并且进程的栈和堆的起始地址也会随机改变。
这样的PE不好调试,如果不想启用ASLR。可以通过以下两种方法解决。
- VS编译器:若不想使用ASLR功能,可以在VS编译的时候将“配置属性->链接器->高级->随机基址”的值修改为否。
- 010editor:把DllCharacteristics这个位置,将PE中8140的数据改为8100。
IMAGE_NT_HEADERS NtHeader
IMAGE_OPTIONAL_HEADER32 OptionalHeader
DLL_CHARACTERISTICS DllCharacteristics
2、参考
- ASLR
http://www.cnblogs.com/dliv3/p/6411814.html
- ASLR pe 分析