как получить флаги защиты области памяти, флаги PROT_READ / PROT_EXEC в mprotect - PullRequest
2 голосов
/ 05 августа 2011

Я использую mprotect () для установки флагов защиты в область памяти.Позже я хочу восстановить флаги защиты этой области памяти.

Мой вопрос: как получить флаги защиты области памяти?флаги включают в себя PROT_READ ...

Мой обходной путь - анализировать / proc / self / maps вручную.Но это решение неуклюже ...

Интересно, есть ли какой-нибудь системный вызов, который я могу использовать?

1 Ответ

2 голосов
/ 05 августа 2011

В общем, это единственный способ.POSIX не предоставляет способ доступа к защите.При использовании в конкретных приложениях, когда вы контролируете код, отображающий страницу, вы можете сохранить флаги где-то в это время, но в общем случае вы должны прочитать /proc/self/maps.Кроме того, вы можете откатиться до некоторых разрешений по умолчанию, если не можете прочитать /proc.PROT_READ|PROT_WRITE, вероятно, является приемлемым значением по умолчанию для большинства вещей, но в некоторых случаях вы также можете захотеть PROT_EXEC.

...