gpt4 book ai didi

c - 以下代码是否禁用 ASLR?

转载 作者:行者123 更新时间:2023-11-30 15:06:39 26 4
gpt4 key购买 nike

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 在 fork 子项中被禁用的代码有什么问题?

最佳答案

这不适用于 fork,因为 fork 会精确复制父级(启用 ASLR)的地址空间。尝试使用 exec 代替,它应该可以工作。

关于c - 以下代码是否禁用 ASLR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38908975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com