Почему стек, виртуальный адрес кучи меняются каждый раз?
Когда я запускаю программу "А", виртуальные адреса кучи и стека меняются, хотя я запускаю ту же программу "А".
я знаю, что в стеке виртуальные адреса кучи не определены в исполняемом объектном файле (формат elf). Они переменные вещи. я могу проверить это командой readelf -l.
но почему kernal должен каждый раз менять адрес стека, хотя одна и та же программа запускается? вот причина, почему я так спросил.
Я делаю простой эмулятор процесса. Я пытаюсь эмулировать прогу от raspbian(32bit) в среде Intel CPU (64bit).
Итак, мне нужно спроектировать 32-битный стек. но я не знаю, как я эмулирую систему стека.
Я сделал анонимную страницу, затем мне нужно использовать ее в качестве стека для эмуляции программы. Я должен имитировать способ, которым программа (32-битная) использует стек. Но виртуальный адрес стека программы изменяется при каждом запуске. Мне нужна помощь
1 ответ
Может случиться так, что операционная система выполняет рандомизацию адресного пространства в стеке, чтобы избежать уязвимостей в безопасности. Если злоумышленник всегда знает, как найти эту информацию для процессов, может быть проще нанести вред системе.