Чтение данных из mm_struct или vm_area_struct пользовательского процесса - PullRequest
3 голосов
/ 26 июня 2011

Мне было интересно, как я буду копировать данные со страницы пользовательского процесса в режиме ядра. У меня есть доступ к mm_struct и всем vm_area_structs процесса. В vm_ops я видел метод доступа, но я не уверен, как это работает. Любая помощь будет оценена.

1 Ответ

2 голосов
/ 29 июня 2011

Это можно сделать с помощью метода access_process_vm, объявленного в linux / mm.h (я думаю, что сейчас не могу вспомнить).Это безопасный способ доступа к памяти процесса, и для этого необходима задача_структура процесса, буфер для данных, которые должны быть записаны / прочитаны, размер, адрес в пространстве vm процесса и является ли это чтение / запись.,Причина, по которой это безопасно, состоит в том, что он имеет все надлежащие блокировки для обработки этого и имеет методы резервного копирования для получения страниц пространства пользователя, если get_user_pages должен завершиться ошибкой.Возвращаемое значение - это количество байтов, прочитанных из пространства vm.

...