【发布时间】:2016-08-12 02:34:10
【问题描述】:
int main(int argc, char **argv)
{
personality(ADDR_NO_RANDOMIZE);
if (fork())
{
return 0;
}
printf("Hook me")
我在练习中遇到了这段代码。根据我的估计,这应该在子进程上禁用 ASLR。但是,我使用 LD_PRELOAD 在 printf 上休眠二进制文件,并在此时附加 gdb。在这一点上,我注意到 ASLR 似乎已启用,具体取决于堆栈地址的变化。 Aslr 肯定是在父进程中启用的。
应该在子进程上禁用 ASLR 吗?阻止 ASLR 在分叉子项中被禁用的代码有什么问题?
【问题讨论】: