Карта памяти процесса (Linux Windows) - PullRequest
5 голосов
/ 27 августа 2010

Может кто-нибудь указать мне какую-нибудь документацию по картам виртуальной памяти, используемым для Linux и Windows.Под этим я подразумеваю, какие виртуальные адреса, код, записываемые статические данные, стек и куча (вместе с другими битами ядра) обычно размещаются в обычном процессе?

Ответы [ 3 ]

2 голосов
/ 03 сентября 2010

Вероятно, лучший способ получить карту памяти процесса в Linux - посмотреть файл / proc // maps.Хорошо видно, что для каждого исполняемого или общего объекта существуют отдельные разделы для исполняемых, постоянных статических данных и записываемых статических данных.Каждый из этих разделов существует на своей странице памяти, которая позволяет Linux обмениваться разделами между исполняемыми файлами и даже реализовывать такие функции, как копирование при записи.

В дополнение к этому есть раздел, посвященный стеку, и одинпосвященный куче.Также могут быть некоторые анонимные разделы.

2 голосов
/ 27 августа 2010

С момента появления ASLR, он в основном на случайных виртуальных адресах.

1 голос
/ 27 августа 2010

Запись в Википедии о Рандомизация размещения адресного пространства (ALSR) описывает, как случайное распределение адресного пространства защищает от различных атак, и как отличается важность между данными и кодом.

Он описывает как слабый уровень рандомизации в Linux по умолчанию, так и патч, который вы можете использовать для его усиления.

В нем также описано, какие версии Windows предлагают его, и как оно применяется только к некоторым кодам и исполняемым файлам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...