Я пытаюсь выяснить, как работает ASLR в Linux, я написал простую программу c, как показано ниже:
void simple(void)
{
printf("simple func\n");
}
int main(void)
{
simple();
printf("address is %p \n.", (void*)&simple);
return 0;
}
в приведенном выше коде, я просто печатаю адрес местоположения простой функции, и во всем выполнении приведенного выше кода я получаю один и тот же адрес для простой функции, но из-за ASLR, я ожидаю получить случайный адрес для простой функции при каждом выполнении программы? я не прав и ASLR не должен этого делать? конечно, когда я запускаю «ldd app.o», я каждый раз получаю случайный адрес для разных библиотек.