Medidas de seguridad del núcleo. No sé mucho sobre el modelo de seguridad de memoria de Windows, porque no uso Windows y no estoy interesado en él, pero le apostaría a que hay partes de memoria que no puede modificar, no importa que. Siempre. Incluso como administrador.
¿Por qué?
Aquí hay tres razones por las que puedo pensar sin pensarlo:
- Evitando que corrompa accidentalmente alguna parte del sistema, en otras palabras, es una cuestión de experiencia de usuario
- Protección contra malware
- DRM
Este último es un motivador especial para Microsoft. Microsoft envía productos DRM en Windows, en los que los publicadores de contenido confían para "asegurar" sus medios (puse comillas seguras porque DRM hace un trabajo altamente cuestionable de eso). Microsoft hace dinero con sus sistemas DRM; por lo tanto, están motivados financieramente para mantener sus sistemas DRM robustos (cuanto más sólido es un sistema DRM, más difícil es romperlo).
Ahora, sería extremadamente fácil romper el DRM si el usuario pudiera cargar cualquier cosa en su computadora, en cualquier lugar, ya que simplemente cargaría una DLL en la aplicación de medios a la que se dirigía y volcaría los datos desencriptados en el disco. Por lo tanto, *, los desarrolladores del kernel de Windows implementarán protección de memoria , lo que evita que las aplicaciones modifiquen ciertas partes de la memoria. Mi conjetura es que al menos el kernel se marcará como memoria protegida (de lo contrario, podría evitar las protecciones de memoria en otras partes del sistema), junto con el contenido protegido por DRM.
Está bien. Pero ¿cómo?
Esto es una simplificación, pero esencialmente, un kernel de sistema operativo es un puente entre el software en hardware. Siempre que un programa quiera hacer algo relacionado con el hardware de forma remota, ya sea hablando por un bus USB o accediendo a los discos o asignando memoria, se requiere pasar por el kernel. Por lo tanto, el kernel puede incluir lógica sobre qué memoria es "legal" asignar o acceder y qué no lo es. Y si una aplicación intenta modificar el espacio de direcciones de otra aplicación que se carga en la memoria protegida, la aplicación modificadora recibirá un error del kernel diciéndole que no está permitido lo que intentó hacer.
* Esta no es la única razón para implementar la protección de memoria. Cualquier sistema operativo que afirmara ser seguro pero sin protección de memoria fue implementado por idiotas, incompetentes, o más probablemente, ambos. Simplemente elegí centrarme en el aspecto DRM en este caso.