/ / Cómo escanear la memoria del espacio de usuario desde un módulo del kernel - c, linux, gestión de memoria, módulo, kernel

Cómo escanear la memoria del espacio de usuario desde un módulo del kernel - c, linux, gestión de memoria, módulo, kernel

Quiero hacer un módulo del núcleo que escanee la memoria de un proceso ejecutado por el usuario y cambie algunos valores. Estoy teniendo algunos problemas para encontrar la manera correcta de interactuar con la memoria del usuario.

Encontré el copy_to_user y copy_from_user Funciones del artículo de IBM. Acceso a la memoria del espacio de usuario desde el kernel de Linux. Pero toman un puntero de espacio de usuario. Como no estoy seguro de dónde quiero cambiar la variable, me gustaría escanear la memoria del proceso de usuario pero no puedo encontrar cómo.

Estaba pensando en leer /proc/$(pidof process)/maps para la dirección, ya que la variable que quiero cambiar está en un objeto compartido allí. Sin embargo, leo en línea que no es una buena práctica leer archivos desde un módulo del kernel.

También estaba pensando que tal vez podría manipular la función copy_from_user para copiar todo, pero no creo que sea una buena idea ya que es realmente grande.

Cualquier sugerencia sera apreciada. Gracias.

Respuestas

-2 para la respuesta № 1

¿Para qué está escaneando la memoria y por qué no puede hacerlo desde el espacio de usuario? Esto se puede hacer fácilmente accediendo al archivo mem en proc.

En cuanto a la respuesta a la pregunta, me temo que esta es una de las cosas que si tiene una razón para hacerlo, puede descubrir fácilmente cómo hacerlo por su cuenta.