Установка разрешений памяти в разветвленном процессе - PullRequest
1 голос
/ 13 января 2012

Моя цель - установить права доступа к странице виртуальной памяти (как будто разветвленный процесс с именем mprotect) от родительского процесса. Можно ли это сделать с помощью ptrace(1) или каким-либо другим волшебством?

Спасибо!

1 Ответ

2 голосов
/ 13 января 2012

Это можно сделать (через ptrace() действительно; gdb можно сделать это), но не без особых затруднений, поскольку для вызова функции в другом процессе вам, в основном, нужнонастроить свои регистры, стек и т. д. для выполнения, а затем продолжить процесс, который будет выполнять функцию.Одна из известных мне программ, у которых может быть полезный источник / методология, на которые вы могли бы взглянуть, - injectso .Если вы посмотрите на injectso, посмотрите на inject_code() функции.

Кроме того, соглашения о вызовах различаются в зависимости от платформы, поэтому вам придется заново перенастроить код для каждой архитектуры / ОС и т. Д.

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