2011-04-15 15 views
5

¿Hay alguna manera de marcar una página que se ejecute solo sin permisos de lectura? (es decir, capaz de ejecutar instrucciones en esa página sin tener permisos de lectura de esa página que sea ejecutable).Linux Memory Management

Mi objetivo final es crear una página que pueda ejecutarse, pero ningún otro proceso debería permitir el acceso a datos a esa página ..

+1

Simplemente por curiosidad, ¿cómo planea permitir permisos de ejecución sin leer la página? Quiero decir ... necesitas leer las instrucciones para ejecutarlos, ¿verdad? –

Respuesta

4

Ésta es una de las cosas que es núcleo y que depende del hardware, como se mencionó en el mprotect() manual page:

Si PROT_EXEC tiene ningún efecto diferente de PROT_READ es la arquitectura y versión del núcleo dependiente.

En los núcleos Linux/x86 recientes, esos indicadores son definitivamente discretos si su CPU admite el NX-bit. En las otras CPU x86, depende de si su núcleo tiene soporte para Exec-Shield u otra emulación de NX-bit similar.