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

October 2007 - Artículos

Disponibles las presentaciones de la October Conference .NET 2007 de Málaga

Acabo de ver que las presentaciones y el código de las demos de las charlas ya se pueden descargar desde esta página: http://www.octoberconference.net/content

Al momento de redactar esta entrada, faltan los contenidos de las sesiones No nonsense WPF de Chad Hower y Ruby on Rails in .NET de Neal Ford.

El nivel de las charlas fue excelente y con unos ponentes de auténtico lujo. La organización mereció un sobresaliente. Yes Esperemos que la cita del año que viene sea igual de buena o incluso mejor, aunque hay que afirmar que este primer encuentro ha puesto muy alto el listón.

Publicado 25/10/2007 7:43 por Ramón Sola | con no comments

Introducción a los volcados de memoria en Windows

Un volcado de memoria, o memory dump en inglés, es una instantánea del estado interno de un programa, ya sea una aplicación en modo usuario o el núcleo del sistema operativo. En otros sistemas se emplea más el término core dump con un significado similar o equivalente. El estado interno comprende, entre otros, los valores de los registros "visibles" del procesador y porciones significativas del espacio de direcciones de memoria que incluyen código, datos y pila.

Los volcados de memoria se pueden clasificar atendiendo al tipo de información capturada o a su extensión (nivel de detalle). Así podemos tener volcados de memoria de una aplicación o del sistema, y volcados pequeños, completos o solamente del núcleo del sistema operativo.

Nota: lo siguiente se aplica a la familia Windows NT, especialmente a Windows 2000 y sus sucesores. Quedan excluidos Windows 95, Windows 98 y Windows Millennium: estos sistemas incluyen una herramienta de diagnóstico de errores de aplicación denominada Dr. Watson que no tiene nada que ver con la de los sistemas Windows NT. Véanse KB185837 y KB275481 para obtener más información.

Volcados de memoria de aplicación

La familia Windows NT incorpora el programa Dr. Watson, un tipo de herramienta que se conoce como depurador Just-In-Time (JIT) o post-mortem. Dr. Watson entra en acción cuando una aplicación encuentra un error, típicamente una infracción de acceso a memoria, para el que no tiene previsto un gestor de excepciones. Dr. Watson crea un archivo en el que registra diversa información técnica sobre el error y captura el estado interno de la aplicación en un volcado de memoria (archivo User.dmp) para un análisis posterior.

Se puede encontrar más información sobre Dr. Watson en KB103861, KB308538, El Just-In-Time Debugger... (por Rodrigo Corral), Ese "extraño" mensaje: La memoria no se puede "read" (por Daniel Martín) y otros muchos sitios, incluyendo la propia ayuda de Windows.

Microsoft también proporciona herramientas más avanzadas, como User Mode Process Dump o ADPlus (véase KB286350), que permiten generar volcados de memoria de aplicaciones, verdaderas instantáneas de ejecución, de forma automatizada o interactiva (por línea de comandos). Esto puede ser útil para diagnosticar bloqueos y otras situaciones anómalas sin tener que interrumpir bruscamente dichas aplicaciones.

Volcados de memoria del sistema

Los sistemas operativos más comunes, con ayuda de la plataforma hardware subyacente, contemplan al menos dos modos de ejecución fundamentales: modo núcleo (o kernel) y modo usuario. El núcleo del sistema y los controladores de dispositivo se ejecutan en modo núcleo, por lo que tienen acceso total a los recursos del equipo. Sin embargo, las aplicaciones se ejecutan en modo usuario, más restringido. El sistema operativo les expone un conjunto de interfaces de programación como único medio de interacción con él, impidiéndoles el acceso directo al hardware. En general el sistema no se viene abajo ante un fallo en modo usuario, sino que cesa su ejecución solamente la aplicación afectada.

Como ya hemos comentado, el modo núcleo carece de restricciones, por tanto cualquier fallo o descuido es potencialmente catastrófico. Si Windows detecta o es informado de una anomalía que no puede ignorar ni gestionar de ningún modo razonable, entonces muestra la temida pantalla azul de la muerte y se detiene. En otros sistemas operativos esta circunstancia recibe el nombre de kernel panic.

Windows puede generar tres tipos de volcados de memoria del sistema: pequeño (minidump), del núcleo o completo. La única opción antes de Windows 2000 era el volcado completo.

  • El volcado pequeño es un archivo de 64 kilobytes en sistemas de 32 bits, o de 128 KB en sistemas de 64 bits. Contiene información muy básica sobre el problema sucedido y el estado del sistema, por lo que sólo aguanta análisis muy superficiales.
  • El volcado del núcleo contiene las porciones del núcleo y los controladores que están presentes en la memoria física. Su tamaño es variable.
  • El volcado completo recoge una instantánea de toda la memoria física. Esta opción no está disponible en sistemas de 32 bits que disponen de más de 2 GB de memoria física.

Se necesita disponer de un archivo de paginación en el volumen en que está instalado Windows y, además, proporcionarle un tamaño mínimo que sea suficiente para alojar un volcado del tipo configurado. La ubicación definitiva del volcado también deberá tener espacio libre de sobra.

De acuerdo con el artículo KB254649, los sistemas Windows clientes (Windows 2000 Professional y todas las ediciones Windows XP) vienen configurados para generar un volcado pequeño, mientras que los sistemas servidores (Windows Server 2003 y ediciones Server de Windows 2000) generan volcados completos de forma predeterminada. En sistemas de escritorio sugiero la configuración de volcado de memoria del núcleo sin reinicio automático: más detallado que el volcado pequeño, más reducido que el volcado completo, y con opción a leer el texto de la pantalla azul.

Ventana de inicio y recuperación de Windows XP

Una configuración sensata del volcado de memoria permitirá investigar y analizar STOPs, ya que es prácticamente imposible determinar la causa real mediante la simple observación de los datos técnicos de la pantalla azul y las circunstancias en que se produjo. Dichos análisis se llevarán a cabo con las herramientas del paquete Microsoft Debugging Tools for Windows, y en especial WinDBG.

Publicado 13/10/2007 9:27 por Ramón Sola | 24 comment(s)

Informe de Microsoft sobre Office 2003 Service Pack 3

Microsoft publicó hace unos días un documento en el que expone los cambios introducidos en el Service Pack 3 de Office 2003. Este service pack no sólo consiste en una recopilación de parches, sino que modifica diversos aspectos del comportamiento de los productos de Office 2003 con relación a la seguridad, la privacidad de los documentos, la experiencia de usuario y la compatibilidad con Windows Vista y Office System 2007.

El documento está en inglés, disponible tanto en el formato binario "clásico" de Word (extensión .DOC) como en el formato nativo de Word 2007 (extensión .DOCX).

Office 2003 Document: Office 2003 Service Pack 3 White Paper

Publicado 9/10/2007 7:56 por Ramón Sola | con no comments

Interesante artículo sobre inyección en consultas LDAP

El maligno Chema Alonso ha publicado en su blog un artículo en tres partes acerca de un tipo de vulnerabilidad que se empezó a tomar en consideración a partir de 2005. Al parecer, la referencia inicial sobre este problema fue el documento de investigación LDAP injection de Sacha Faust, un ingeniero de desarrollo de la empresa SPI Dynamics.

LDAP es un protocolo relativamente sencillo que actúa sobre un servicio de directorio. La vulnerabilidad, similar por ejemplo a la inyección de código en una consulta SQL, estaría presente en aplicaciones que no validan correctamente los datos con los que completan sus consultas LDAP. Esto supone en principio un riesgo de divulgación de información.

Podéis leer el artículo de Chema y compañía a partir de este enlace: LDAP Injection & Blind LDAP Injection

Publicado 7/10/2007 21:59 por Ramón Sola | con no comments

Archivado en: ,

Cómo me cargué los contadores de rendimiento

Hace unos días observé que se generaban en cada arranque de mi Windows XP estos sucesos de LoadPerf en el registro Aplicación: 3011 (error), 3012 (error) y 1000 (información).

Tipo de suceso: Error
Origen del suceso: LoadPerf
Categoría del suceso: Ninguno
Id. suceso: 3012
Fecha: 26/09/2007
Hora: 18:43:47
Usuario: No disponible
Equipo: GABARDINO
Descripción:
Las cadenas de rendimiento en el valor de rendimiento del registro es incorrecto al procesar el proveedor de contador de extensión Performance. El valor BaseIndex del registro de rendimiento es el primer valor DWORD en la sección de datos, el valor LastCounter es el segundo valor DWORD en la sección de datos y el valor LastHelp es el tercer valor DWORD en la sección de datos.

Para obtener más información, vea el Centro de ayuda y soporte técnico en http://go.microsoft.com/fwlink/events.asp.
Datos:
0000: 37 07 00 00 00 00 00 00   7.......
0008: 00 00 00 00 ca 03 00 00   ....Ê...

Tipo de suceso: Error
Origen del suceso: LoadPerf
Categoría del suceso: Ninguno
Id. suceso: 3011
Fecha: 26/09/2007
Hora: 18:43:47
Usuario: No disponible
Equipo: GABARDINO
Descripción:
Error al descargar las cadenas de los contadores de rendimiento para el servicio WmiApRpl (WmiApRpl). El código de error es la primera sección de Datos en DWORD.

Para obtener más información, vea el Centro de ayuda y soporte técnico en http://go.microsoft.com/fwlink/events.asp.
Datos:
0000: f2 03 00 00 3b 07 00 00   ò...;...

Tipo de suceso: Información
Origen del suceso: LoadPerf
Categoría del suceso: Ninguno
Id. suceso: 1000
Fecha: 26/09/2007
Hora: 18:43:50
Usuario: No disponible
Equipo: GABARDINO
Descripción:
Se cargaron satisfactoriamente los contadores de rendimiento del servicio WmiApRpl (WmiApRpl). Los datos de registro contienen los nuevos valores de los índices asignados a este servicio.

Para obtener más información, vea el Centro de ayuda y soporte técnico en http://go.microsoft.com/fwlink/events.asp.
Datos:
0000: 0c 14 00 00               ....  

Como no me gusta ver errores o advertencias generados durante el inicio el sistema, decidí investigar un poco.

Windows posee una infraestructura, por llamarla de algún modo, para producir o consumir métricas de rendimiento de aplicaciones, servicios, controladores, subsistemas y todo el equipo en general. La recogida de datos se lleva a cabo mediante proveedores de rendimiento, que no son más que DLLs especialmente diseñadas para ese propósito. (Windows Vista introduce un modelo nuevo de contadores de rendimiento, aunque mantiene el anterior por razones de compatibilidad.)

La consola de administración de rendimiento proporciona una interfaz gráfica para obtener muestras periódicas de diversos contadores en tiempo real, registrar su evolución y establecer alertas. Se puede acceder a esta consola desde la carpeta de Herramientas administrativas, o ejecutando directamente Perfmon.exe o Perfmon.msc.

De vuelta a los sucesos, EventID.Net resultó ser la primera fuente de información: LoadPerf 3012. Los comentarios hacen referencia a dos herramientas del sistema para cargar y eliminar en el registro de Windows la información de contadores de rendimiento asociados a un determinado componente del sistema: Lodctr y Unlodctr. También se menciona un artículo de la Knowledge Base de Microsoft al que se recurriría si fuera necesario reconstruir la lista de contadores de rendimiento. Las instrucciones se aplican a Windows 2000 en inglés. Para otras versiones e idiomas, el proceso tiene algunas variaciones.

How to manually rebuild Performance Counter Library values (KB300956)

El caso es que, haciendo pruebas tontas para averiguar cómo funcionaban las herramientas Lodctr y Unlodctr, acabé borrando todos los contadores de rendimiento. Cuando abrí el monitor del sistema en la consola de rendimiento y quise agregar un contador, la lista desplegable Objeto de rendimiento sólo mostraba puros números y las listas de contadores e instancias estaban completamente vacías. Además se generó un "chorro" de sucesos relacionados con índices de contadores y valores de registro inexistentes.

La resolución tomada, en el próximo capítulo.

Publicado 1/10/2007 7:55 por Ramón Sola | 7 comment(s)