Apuntes de un loco

Historias informáticas de ayer y hoy

Licencia

Buscar

Este Blog

Sindicación

Notas

  • Se ha deshabilitado el formulario de contacto del blog debido a abusos.

    Por determinación del administrador de Geeks.ms, los visitantes que no inicien sesión (visitantes anónimos) no podrán enviar comentarios a los blogs, para lo cual deberán registrar una cuenta de usuario e identificarse mediante la misma. También se admite la identificación a través de OpenID. Disculpen las molestias que les cause esta decisión.

Acerca de los contenidos

    La información ofrecida en este blog se proporciona tal cual, sin garantías de ningún tipo, y no otorga ningún derecho. Usted asume el riesgo de poner en práctica cuantos procedimientos se expongan aquí. En particular, si ha venido buscando alguna solución para una tarea o duda escolar y no le ha servido el contenido, por favor, no me eche la culpa. ;)

    Las anotaciones del blog representan una visión válida en el momento en que fueron publicadas o actualizadas. Más allá de esas fechas no se puede garantizar la veracidad de la información expuesta ni la exactitud o fiabilidad de los enlaces.

    Los comentarios son responsabilidad exclusiva de sus autores respectivos. El dueño del blog se reserva el derecho de editar, eliminar o no publicar aquellos comentarios que a su criterio infrinjan reglas básicas de respeto y convivencia en la red. En el caso de la edición, se expondrá claramente esta circunstancia y el motivo de la misma. El dueño del blog podrá asimismo borrar los enlaces que se desvíen demasiado de los temas tratados, muestren intenciones de autopromoción (publicidad descarada, spam convencional, etc.) o en general no inspiren confianza. Las direcciones de correo electrónico serán eliminadas o alteradas con el fin de reducir el riesgo de que sean objeto de "cosechadores" para el envío de mensajes basura masivos. El envío de comentarios implica el conocimiento de estas condiciones y la adhesión a las mismas.

Etiquetas

Archivo

Colegas y afines en Geeks.ms

Otros bloggers españoles

Bloggers de Microsoft

Herramientas interesantes

Geeks.ms

Mi blog personal

Webs y comunidades amigas

Retroinformática

Curiosidad: pantallazos azules de otros colores con NotMyFault

NotMyFault es un programa de demostración de Mark Russinovich para los libros Microsoft Windows Internals, de los que es coautor, y que él mismo usa ocasionalmente en sus presentaciones técnicas. Su propósito es exhibir las consecuencias de algunos errores de programación típicos en controladores, tales como bloqueos, fugas de memoria de núcleo, procesos zombis y especialmente la temida pantalla azul.

Nota: esta entrada no contiene ningún método de diagnóstico o resolución de problemas. Se recomienda encarecidamente ensayar el funcionamiento de NotMyFault exclusivamente en un sistema de pruebas (para mayor comodidad, una máquina virtual de usar y tirar), ya que su uso entraña el riesgo de corromper archivos y perder datos. En algún caso puede ocasionar que el sistema operativo no vuelva a arrancar.

La denominación de NotMyFault (“la culpa no es mía”) surge del supuesto de que un programa en modo usuario no puede derribar el sistema por sí mismo, de modo que se sirve de un controlador en modo núcleo, MyFault.sys, para tan vil propósito. Este es el agente ejecutor que lleva a cabo realmente la orden escogida en la ventana de la aplicación, acción que se compara con la elección de un veneno. Puesto que el privilegio de la carga de controladores de núcleo se restringe a las cuentas de usuario con mayor poder, la aplicación requiere credenciales de administrador para funcionar correctamente. En verdad, la utilidad práctica de NotMyFault es limitada y su relevancia igualmente escasa por tratarse de una herramienta de demostración. Sin embargo, Russinovich ha ido ampliando poco a poco sus funciones para exponer problemas típicos adicionales.

Uno de los acontecimientos que más diversión suele producir entre el público de una charla técnica, así como una indescriptible sensación de bochorno en los ponentes, es la aparición de un error inesperado en la pantalla de proyección, cuanto más espantoso mejor. Todo el mundo recuerda la pantalla azul durante la presentación de Windows 98 en la exposición Comdex de 1998 con Bill Gates como maestro de ceremonias. Pues bien, parece ser que a Mark Russinovich le gusta agradar al auditorio con una pantalla azul auténtica en algunas de sus sesiones sobre investigación de problemas en Windows. Aún puede darse una vuelta más de tuerca convirtiendo lo “cotidiano” en excepcional; vale, lo he destripado en el título. ¿Y si la pantalla azul ya no tuviese fondo azul o texto blanco?

Windows 3.1 y sus sucesores (Windows 3.11, Windows 95, Windows 98 y Windows Millennium) permitían modificar los colores del texto y el fondo de sus “pantallas azules” a través de los valores MessageTextColor y MessageBackColor de la sección [386Enh] del archivo System.ini. No obstante, en la familia Windows NT los valores de color están especificados directamente (hardcoded) en el código fuente del núcleo y por tanto incorporados al flujo de instrucciones de código máquina, así que variarlos no resulta fácil. El mes pasado, Russinovich explicó en su blog un método bastante complicado para modificar directamente en memoria estos números mediante el depurador del núcleo. Por supuesto, el éxito de esta empresa es efímero y, desde luego, alterar el archivo Ntoskrnl.exe con un editor hexadecimal tampoco es una opción por diversos motivos.

Entonces, ya que NotMyFault es tan “útil” para generar errores de sistema a propósito, el experto Alex Ionescu sugirió la idea de añadir esta peculiaridad de algún modo al programa. La implementación, según ha relatado hace unos días Russinovich, consiste en una rutina que manipula la paleta de colores VGA del controlador básico de vídeo. Para conseguir que el núcleo la invoque inmediatamente después de mostrar el texto de la pantalla azul, se inserta en una lista específica mediante la función KeRegisterBugCheckReasonCallback. Este mecanismo de retrollamada (callback) es totalmente opcional y está concebido particularmente para agregar datos al volcado de memoria, restablecer un dispositivo a un estado seguro o copiar la información del volcado a otro sistema de almacenamiento.

Por cierto, también hablaron de forma más resumida sobre este tema en Softzone.es: Cambiar el color de los pantallazos azules (BSOD) ahora es posible. Si alguien desea probar la aplicación, insistiré en la advertencia de la nota de arriba (únicamente en entornos de pruebas o pondrás en serio riesgo tus datos). La descarga se encuentra en la página oficial del libro Microsoft Windows Internals, Fifth Edition, incluye código fuente además de los archivos binarios firmados digitalmente, y es compatible con las ediciones x86 y x64 a partir de Windows XP. No obstante, al momento de publicar esta entrada, el código fuente del controlador MyFault distribuido en el archivo ZIP está anticuado: no se corresponde con los archivos compilados, sino que continúa siendo el de la actualización de marzo de 2009.

En fin, que os divirtáis provocando fallos a diestro y siniestro con pantallas de colorines, pero sin hacer maldades, ¿eh? ;-)

Published 22/1/2011 18:30 por Ramón Sola

Comparte este post: