小编Tho*_*mas的帖子

为什么Windows不能随机化我的可执行文件的基地址?

我做了一个简单的C程序,它只打印main()执行时的地址:

printf("%08X\n", &main);

我使用Visual C++ 2015使用参数编译它/DYNAMICBASE,对于x86(编译x64时也会发生同样的事情).

前两次我运行它,返回的地址是不同的,正如预期的那样.但是,两次之后,程序返回的地址保持不变:

00C31050
00221050
00221050
00221050 
Run Code Online (Sandbox Code Playgroud)

重新编译或重命名可执行文件会再次使地址随机化.

这里发生了什么?Windows以某种方式缓存可执行文件吗?

c windows aslr windows-10

7
推荐指数
1
解决办法
807
查看次数

标签 统计

aslr ×1

c ×1

windows ×1

windows-10 ×1