0
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嗎?代碼阻止ASLR在分叉子中被禁用有什麼問題?