[Archivo de boletines ^] [< Volumen 2, Número 5] [Volumen 3, Número 2 >]
Boletín de información interna de sistemas Volumen 3, Número 1
http://www.sysinternals.com
Copyright (C) 2001 Mark Russinovich
18 de abril de 2001 - En este número:
EDITORIAL
NOVEDADES DE SYSINTERNALS
- PsService v1.01
- PsFile v1.0
- PsExec v1.11
- HandleEx v4.0
- DebugView v4.11
- Dentro de Windows 2000, 3.ª Ed.
- Windows 2000 Magazine de febrero
- Sysinternals en Microsoft
INFORMACIÓN INTERNA
- Métodos abreviados de teclado interesantes
- Mensajes de depuración de PnP
- Sentencia de ingeniería inversa
- Nuevas llamadas del sistema de Windows XP
- Redes desconectadas
- WinDev
- TechEd US
PRÓXIMAMENTE
- Dentro de la captura previa de Windows XP
PATROCINADOR: WINTERNALS SOFTWARE ~~~~
El Boletín de Sysinternals está patrocinado por Winternals Software, en la Web en http://www.winternals.com. Winternals Software es el principal desarrollador y proveedor de herramientas avanzadas de sistemas para Windows NT/2K. Los productos de Winternals Software incluyen FAT32 para Windows NT 4.0, NTFSDOS Professional Edition (un controlador NTFS de lectura y escritura para DOS) y Recuperación remota.
Winternals se enorgullece de anunciar la versión 1.2 de Defrag Commander NE, una solución de desfragmentación empresarial de bajo costo fácil de usar que agrega compatibilidad con NT 4 a su compatibilidad existente con Windows 95/98/Me y Windows 2000. Defrag Commander NE aprovecha los desfragmentadores integrados de Windows 2000 y Windows 95/98/Me, y agrega su propio desfragmentador eficaz para Windows NT 4. Ahora puede administrar programaciones de desfragmentación en toda su empresa de Windows desde un sencillo complemento MMC, sin tener que instalar ningún software cliente en los sistemas NT o Windows 2000. Hay una licencia de 10 sistemas disponible para la compra en línea por solo 169 USD y se ofrecen agresivos descuentos por cantidad. Visite http://www.winternals.com para más información.
Hola a todos:
Bienvenido al boletín de Sysinternals. El boletín tiene actualmente 31 500 suscriptores.
Una de las primeras cosas que observa cuando instala una versión beta de Windows XP es la interfaz de usuario rediseñada, denominada Luna. El aspecto de Luna impregna todos los aspectos de la interfaz, desde el comportamiento del menú de inicio hasta el diseño de los menús y cuadros de diálogo de la aplicación. Esta conversión total se logra mediante el uso de un motor de "temas". Los temas se describen en archivos de estilo de tema (archivos que terminan en .msstyles
) y el archivo de tema Luna, luna.msstyle
, se encuentra en \Windows\Resources\Themes\Luna
. En el mismo directorio encontrará un subdirectorio denominado Shell, en el que se encuentra shellstyle.dll. No está claro cómo XP usa el archivo DLL: la carga el Explorador y tiene una hoja de estilo HTML enterrada en él, pero no exporta. Como comdlg.dll y kernel32.dll la importan, y cada aplicación obtiene una copia de estas DLL, cada proceso obtiene también una copia cargada de \Windows\System32\UxTheme.DLL
, la biblioteca cliente de temas. Este DLL exporta funciones como IsThemeActive
, IsAppThemed
, GetCurrentThemeName
, DrawThemeBackground
y GetThemeColor
.
El Registro es donde se especifica el tema actual y se configura la generalidad del tema. Busque en HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes
y encuentre una clave denominada Apply
donde verá valores como "colores" e "iconos" que especifican dónde debe estar activo el tema. Bajo la misma clave, la subclave Current
contiene la ruta de acceso al archivo .msstyles del tema actual.
Dado que el "skinning" se ha puesto de moda en aplicaciones como WinAmp y el Reproductor de Windows Media, cabría suponer que Microsoft publicaría una herramienta que permitiera a terceros desarrollar sus propios temas, o al menos documentaría el formato del archivo .msstyles
y la DLL de shellstyle para que terceros pudieran desarrollar editores de temas. Sin embargo, no es así. En "Microsoft Windows XP: ¿Qué hay para los desarrolladores?" (publicado en línea en http://msdn.microsoft.com/library/default.asp?URL=/library/techart/winxpintro.htm), Microsoft deja claro que no tiene intención de permitir temas de terceros:
"A primera vista, el potencial de múltiples estilos de Windows XP puede querer parecerse a la funcionalidad de aspecto en aplicaciones como Window Media Player, pero hay diferencias. Los temas cambian el estilo visual del sistema operativo, pero siguen proporcionando una interfaz de usuario coherente con versiones anteriores de Windows. Esto es importante, ya que los temas se aplican en todo el sistema. Los cambios aplicables a una máscara de aplicación, como la eliminación de botones, no son adecuados en el nivel del sistema operativo. Los formatos de archivo de tema no son públicos; Microsoft conserva el control de diseño de los temas para permitir una interfaz de usuario coherente y garantizar la continuidad del diseño. El kit para desarrolladores de temas no estará disponible con Windows XP".
El argumento que sin duda defienden es que los temas de terceros podrían romper de algún modo la interfaz de usuario, y los usuarios llamarían al servicio de asistencia de Microsoft para pedir ayuda. Por qué no tienen el mismo miedo con Reproductor multimedia de Windows, no lo sé. No obstante, hay formas de aplicar un aspecto de tema al escritorio y a las aplicaciones. Visite http://www.wincustomize.com/ para encontrar apariencias de escritorio de Windows, como la nueva Aqua-Soft (una apariencia de WindowBlinds - http://www.windowblinds.net) que da a Windows el aspecto del escritorio de OS X de Apple. Y dada la persistencia de la comunidad de creación de aspectos en averiguar cómo aplicar aspectos a todo lo que sale al mercado, estoy seguro de que ahora mismo hay gente haciendo ingeniería inversa al formato de temas de Microsoft. Solo es cuestión de tiempo antes de que alguien publique un editor de temas, independientemente de la directiva de Microsoft sobre el control de temas.
¿Qué hará Microsoft cuando empiecen a aparecer los editores de temas de Windows XP y temas de terceros? Tendremos que esperar y ver, pero el comportamiento de Apple podría proporcionarnos una vista previa. Hace unos días Apple emitió una orden de cese y desistimiento a una empresa que desarrollaba un editor de temas para Mac OS: http://www.macworld.co.uk/news/main_news.cfm?NewsID=2773. Aviso a los desarrolladores de temas.
Por favor, pase el boletín de noticias a los amigos que cree que podrían estar interesados en su contenido.
Gracias
-Mark
NOVEDADES DE SYSINTERNALS
PSSERVICE V1.01
Los kits de recursos de NT 4 y Win2K disponen de una utilidad de control de servicios por línea de comandos, SC, desde que tengo uso de razón. SC permite ver y cambiar el estado y la configuración de los servicios Win32 en los sistemas locales o remotos. PsService es un clon de software gratuito de SC que tiene algunas características adicionales.
La primera es que PsService permite conectarse a sistemas remotos mediante credenciales de usuario alternativas. Esto resulta útil en los casos en los que la cuenta desde la que se ejecuta no tiene privilegios administrativos en el sistema remoto, pero tiene acceso a una cuenta que sí lo hace. El segundo es la funcionalidad de búsqueda de PsService. Si alguna vez ha olvidado qué sistema de la red está ejecutando el DNS, DHCP o algún otro servicio, encontrará útil la utilidad de búsqueda, ya que le permite especificar un nombre de servicio e informa de los equipos que ejecutan el servicio.
PsService se basa en la API de Service Control Manager, para la que puede encontrar documentación completa en el SDK de plataforma y PsService no requiere ninguna instalación de software cliente.
Descargue PsService v1.01 en http://www.sysinternals.com/ntw2k/freeware/psservice.shtml.
PSFILE V1.0
PsFile es una herramienta que he creado en respuesta a las solicitudes de algo que supere las limitaciones del comando "net file" en Windows NT/2K. Puede usar el comando integrado "net" en NT y Win2K con la opción "file" para enumerar los archivos que otros equipos han abierto en recursos compartidos exportados por el sistema. Sin embargo, el comando net trunca los nombres de ruta de acceso largos y solo funciona en el sistema local.
PsFile usa las mismas API (como es lógico, la API de "Net", que está documentada en el SDK de la plataforma) que el comando net, pero no trunca los nombres de los archivos y funciona tanto local como remotamente, sin necesidad de instalar software cliente.
Descargue PsFile v1.0 en http://www.sysinternals.com/pstools.htm.
PSEXEC V1.11
PsExec es una aplicación de línea de comandos para Windows NT/2K que permite ejecutar programas en sistemas remotos. Lo que hace que sea especialmente eficaz es que habilita de forma remota los programas de consola para que pueda ejecutarlos de forma interactiva. Por ejemplo, si inicia el ejecutable del símbolo del sistema (cmd.exe) en un sistema remoto mediante PsExec, tiene en la práctica un shell remoto y no es necesario instalar ningún software cliente.
Además de servir como telnet ligero, PsExec permite habilitar de forma remota aplicaciones "solo locales". IpConfig, la herramienta integrada que muestra la configuración de red de un sistema, no puede mostrar la configuración de los sistemas remotos. Sin embargo, con PsExec, puede iniciarlo de forma remota y ver su salida localmente.
En algunos casos, la cuenta en la que se ejecuta una aplicación es importante. Es posible que la aplicación tenga que ejecutarse en la cuenta para que los cambios que realice en el Registro o los archivos se produzcan en el contexto de seguridad correcto. En otros casos puede ser deseable ejecutar la aplicación en una cuenta distinta de aquella en la que ejecuta PsExec, y otras veces puede querer que la aplicación remota se ejecute en la cuenta del Sistema. PsExec admite todas estas situaciones.
De forma predeterminada, PsExec ejecuta programas en un contexto de seguridad "suplantado". Esto significa que si ejecuta PsExec en la cuenta del administrador, el proceso remoto se ejecutará en la cuenta del administrador. Debido a las restricciones en la potencia de la suplantación, el proceso remoto no tendrá acceso a los recursos de red en el sistema remoto. Si especifica un nombre de usuario y una contraseña en la línea de comandos de PsExec, PsExec inicia el proceso remoto en la cuenta alternativa y el proceso remoto tiene acceso a los recursos de red accesibles desde esa cuenta. Por último, una opción de línea de comandos le permite indicar a PsExec que ejecute el proceso remoto en la cuenta del Sistema, la misma cuenta en la que se ejecutan los servicios Win32.
Descargue PsExec v1.11 en http://www.sysinternals.com/ntw2k/freeware/psexec.shtml.
HANDLEEX V4.0
HandleEx es una herramienta polifacética que le muestra la lista de procesos activos en un equipo, así como los controladores de los recursos del sistema operativo que tienen abiertos y las DLL que han cargado. Su facilidad de búsqueda y la presentación detallada de las propiedades de los procesos, los controladores y las DLL hacen de HandleEx la herramienta perfecta para localizar problemas de versiones de DLL, fugas de controladores y el proceso que está accediendo a un archivo o directorio concreto.
Si ha seguido las actualizaciones de Sysinternals, observará que HandleEx ha saltado dos números de versión principales en los últimos meses. La primera actualización principal, v3.0, introdujo una serie de características como iconos de aplicación en la vista de proceso, información sobre herramientas para todos los elementos de listview, una actualización mucho más eficaz y una característica de búsqueda mejorada en la que puede hacer clic en los elementos de resultados en el cuadro de diálogo de búsqueda y hacer que HandleEx salte al identificador o la entrada DLL adecuada.
Sin embargo, quizás las características más útiles para los desarrolladores son "resaltado de actualización" y resaltado de DLL reubicado. El resaltado de actualización hace referencia al comportamiento de HandleEx al actualizar la vista. Los elementos nuevos, incluidos procesos, controles o DLL cargados, que no estaban presentes antes de la actualización se resaltan en verde, mientras que los elementos que ya no existen se resaltan en rojo. Además de avisarle visualmente de los cambios, esto le permite ver vívidamente las fugas de controles en curso, donde los controles recién abiertos aparecen en verde tras una actualización.
La parte resaltada del DLL reubicado de HandleEx está relacionada con la reubicación del DLL, el término que describe la acción del cargador de módulos en Windows donde no puede respetar la "dirección base" preferida que los desarrolladores indican cuando compilan un archivo DLL. El código que genera un enlazador (la herramienta usada para la fase final de la compilación DLL o EXE) para un archivo DLL tiene referencias de memoria dentro de DLL establecidas con la suposición de que el cargador respetará la dirección base del archivo DLL. El intervalo de memoria del proceso que carga un archivo DLL que comienza en la dirección base y admite el tamaño de la imagen DLL cargada debe ser libre para que el archivo DLL se cargue en su dirección base preferida. Cuando se respeta la dirección base para varios procesos, se logra la eficacia del uso de memoria porque todos los procesos comparten la misma memoria de código DLL.
Cuando el cargador no puede respetar la dirección base de un archivo DLL, por ejemplo, cuando otro ya usa el intervalo de direcciones deseado, el cargador debe realizar una "reubicación", lo que implica actualizar todas las referencias de memoria dentro del archivo DLL para reflejar la dirección de carga real del archivo DLL. Además de ralentizar el tiempo de carga del proceso (normalmente imperceptiblemente), la imagen DLL reubicada no se puede compartir con otros procesos que tengan el archivo DLL cargado en la dirección base preferida. Esto significa que en realidad tiene una segunda copia de la DLL consumiendo memoria.
Cuando esté en el modo DLL puede seleccionar la opción "Resaltar DLL reubicadas", con lo que HandleEx mostrará en amarillo las entradas de las DLL que no estén cargadas en su dirección base preferida. Los desarrolladores pueden restablecer sus direcciones base DLL para evitar reubicaciones.
¿Y el salto de HandleEx a la versión 4.0? Esta última versión de HandleEx lleva una visualización completa del identificador a la plataforma Win9x/Me. Ahora puede seleccionar un proceso y ver los identificadores que tienen abiertos, igual que cuando ejecuta HandleEx en WinNT/2K/XP. No solo eso, sino que además, como en WinNT/2K/XP, la visualización de las propiedades de eventos, mutexes y semáforos revela información sobre su estado (retenido, señalado).
Descargue HandleEx 4.0 en http://www.sysinternals.com/ntw2k/freeware/handleex.shtml.
DEBUGVIEW V4.11
DebugView es una utilidad para desarrolladores que permite capturar la salida de depuración de aplicaciones o controladores en el sistema local o uno remoto, incluso desde varios sistemas simultáneamente. Esta versión más reciente agrega compatibilidad con Windows XP Beta 2, algunas características de facilidad de uso y una característica dirigida a desarrolladores de controladores de dispositivos en WinNT/2K/XP.
El cuadro de diálogo de filtrado de DebugView permite definir máscaras de filtro de inclusión y exclusión para restringir en la salida de depuración que le interesa ver. Además, puede especificar hasta 5 filtros de resaltado diferentes, cada uno con un color personalizable diferente. Anteriormente, si tenía proyectos que requerían filtros diferentes, tenía que volver a escribir los filtros cada vez que cambiaba los proyectos. Con DebugView 4.11 puede guardar filtros en un archivo para recarga rápida. Como antes, DebugView se inicia con los filtros que tenía activos la vez anterior que salió de él.
A veces, es necesario capturar un seguimiento de salida de depuración para un análisis posterior o compararlo con otros seguimientos. Antes de la nueva versión de DebugView, la única manera de ver un archivo de registro era cargarlo en un editor de texto, lo que significaba que no podía aplicar filtros de resaltado útiles. Ahora puede volver a cargar un archivo de registro de DebugView en DebugView, lo que permite ver la salida de la manera en que la ha visto cuando la capturó originalmente. El uso de varias ventanas de DebugView le permite comparar los seguimientos.
La última característica nueva, el registro en tiempo de arranque, complementa la compatibilidad de DebugView con el volcado de memoria en NT/Win2K. Con el soporte de volcado de memoria de DebugView, puede capturar la salida de un controlador de dispositivo y, si el controlador bloquea el sistema y tiene habilitados los volcados de memoria (completos o del kernel), usar DebugView para extraer la salida de depuración del controlador del volcado, permitiéndole consultar la salida del controlador hasta el momento del bloqueo.
El registro en tiempo de arranque permite capturar la salida de los controladores que se cargan durante el proceso de arranque como controladores de arranque o de inicio del sistema. El controlador de DebugView captura y almacena en búfer hasta 1 MB de salida de depuración durante el arranque después de habilitar el registro en tiempo de arranque. Una vez que el sistema esté activo, al ejecutar la aplicación DebugView se importa la salida almacenada en búfer para su visualización. Y si el controlador se bloquea durante el arranque y tiene habilitados volcados de memoria, la compatibilidad con volcados de memoria de DebugView le permite ver la salida que generó el controlador antes del bloqueo.
Descargue DebugView v4.11 en http://www.sysinternals.com/ntw2k/freeware/debugview.shtml.
DENTRO DE WINDOWS 2000, 3.ª ED.
El libro oficial sobre el funcionamiento interno de Windows 2000 ya está disponible. Esta edición, de la que son coautores David Solomon (www.solsem.com) y Mark Russinovich, es más de un 40 % mayor que la anterior, con nueva cobertura de redes, plug-and-play, administración de energía, servicios, el Registro, WMI, arranque y apagado, y almacenamiento. También incluye un CD con varias herramientas eficaces, no disponibles en ningún otro lugar, para investigar los aspectos internos de Windows 2000.
Si va a la página de Amazon.com del libro, http://www.amazon.com/exec/obidos/ASIN/0735610215/o/qid%3D957490318/sr%3D8-1/ref%3Daps%5Fsr%5Fb%5F1%5F1/103-5793119-3499040/systemsinternals/107-2386425-6078131, observará que solo dos reseñas se han publicado desde la publicación del libro en septiembre. Si tiene el libro, le animamos encarecidamente a que comparta sus opiniones con otros posibles lectores.
Vea la tabla de contenido y el orden del libro ahora a través de http://www.sysinternals.com/insidew2k.htm.
WINDOWS 2000 MAGAZINE DE FEBRERO
Consulte el ejemplar de febrero de Windows 2000 Magazine para leer mi artículo sobre el análisis de volcados de memoria de NT/Win2K. El artículo comienza mostrándole los aspectos básicos de la configuración de los volcados de memoria y explica cómo crea el sistema operativo un volcado de memoria (con pistas sobre por qué puede fallar la generación de un volcado). A continuación, le explico dónde puede obtener las herramientas de análisis de volcado más recientes y recorrer el uso de una potente utilidad de Microsoft, Kanalyze. Por último, eche un vistazo rápido al uso de un depurador de kernel para examinar un volcado de memoria. Incluso si solo una pequeña fracción de volcados revela su causa con el análisis, debería encontrar la información útil.
El artículo se publica en línea a través de un enlace en http://www.sysinternals.com/publ.shtml, donde puede encontrar vínculos a todas nuestras publicaciones.
SYSINTERNALS EN WWW.MICROSOFT.COM
Sysinternals ha hecho una aparición en más artículos de Microsoft Knowledge Base (KB) desde el último boletín de noticias, lo que ha llevado el total que he encontrado haciendo referencia a las herramientas de Sysinternals a 17.
Q274038: PRB: Error de ASP 8002801d "Biblioteca no registrada"
http://support.microsoft.com/support/kb/articles/Q274/0/38.ASP
En este artículo se dirige a los usuarios a Regmon para solucionar los errores de Páginas de Active Server.Q232830: CÓMO: Determinar la propiedad del control de archivos
http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
¿Desea saber qué proceso tiene abierto un archivo? Este artículo de KB le dirige a HandleEx.Q2163868: PRB: Infracción de acceso durante la configuración de la aplicación cuando se usa el archivo
http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
Las aplicaciones de instalación de Visual Basic pueden bloquearse si un archivo que intenta copiar está en uso. HandleEx es la herramienta ideal para localizar el proceso que está interfiriendo.Q286198: CÓMO: Hacer un seguimiento de los errores de "Permiso denegado" en archivos DLL
http://support.microsoft.com/support/kb/articles/Q286/1/98.ASP
Con Filemon (el artículo también menciona Regmon), puede ver qué proceso de una aplicación COM o MTS recibe un error de "acceso denegado".Q246199: ERROR: Cambiar la configuración regional en el procedimiento almacenado extendido puede provocar resultados incorrectos
http://support.microsoft.com/support/kb/articles/Q246/1/99.ASP
Este artículo recomienda usar ListDLLs para consultar qué versión de la biblioteca C-runtime está usando SQL Server.Q196453: Solución de errores de arranque de NTVDM y WOW http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP A los usuarios que experimentan problemas al iniciar aplicaciones de 16 bits se les indica que consulten Filemon para ver a qué archivos tiene errores de acceso el subsistema de entorno de 16 bits (NTVDM).
INFORMACIÓN INTERNA
MÉTODOS ABREVIADOS DE TECLADO INTERESANTES
Probablemente muchos de ustedes consideren la tecla Windows de los teclados más nuevos como una tecla que simplemente ocupa espacio. Yo era así hasta hace poco, cuando me topé con un método abreviado de teclado de la tecla de Windows para una operación que realizo con frecuencia, y ahora estoy desgastando el logotipo de la tecla debido a mi uso frecuente. Pensé que compartiría algunos métodos abreviados de teclado que encuentro útiles, todos los cuales funcionan en todas las versiones de Windows.
Acción | Acceso directo |
---|---|
Iniciar el administrador de tareas | ctrl+mayús+escape |
Mostrar el cuadro de diálogo Propiedades del sistema | Windows+Inter |
Minimizar todas las ventanas | Windows+m |
Maximizar todas las ventanas | Windows+M |
Abrir Mi PC | Windows+e |
Buscar un archivo | Windows+f |
Abrir el cuadro de diálogo Ejecutar | Windows+r |
Después de determinarlos por ensayo y error, David Solomon me indicó que están documentados en la ayuda de Windows 2000 en "Métodos abreviados de teclado naturales".
MENSAJES DE DEPURACIÓN DE PNP
Si está desarrollando controladores "plug-and-play" para Windows 2000, le sorprenderá saber que puede hacer que incluso la versión comercial de Windows 2000 produzca mensajes de depuración del sistema "plug-and-play" durante el proceso de enumeración y carga de controladores. Haga que su depurador del kernel se interrumpa al inicio del arranque del sistema y establezca la variable interna del kernel PnpEnumDebugLevel
en 2 (la mayoría de los mensajes se desencadenan con un nivel de 1). Este es un ejemplo de la salida que verá, que muestra el administrador de PnP cargando el controlador swenum (controlador del bus de enumeración de software):
.
IopCallDriverAddDevice: Processing devnode 0xfe503208
IopCallDriverAddDevice: DevNode flags going in = 0x000019
IopCallDriverAddDevice: Will load driver
IopCallDriverAddDevice: Opening registry key Root\SYSTEM\0000
IopCallDriverAddDevice: Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
IopCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
IopCallDriverAddDevice: Value Service [Type 1, Len 14] @ 0xe14ee82c
IopCallDriverAddDevice: Service Name swenum
IopCallDriverAddDevice: DriverName is \Driver\swenum
IopCallDriverAddDevice: Driver Reference 0xff3a8af0
IopCallDriverAddDevice: Adding Services (type 0)
IopCallDriverAddDevice: Adding Services (type 1)
IopCallDriverAddDevice: Adding Services (type 2)
IopCallDriverAddDevice: Adding driver 0xff3a8af0
IopCallDriverAddDevice: Routine returned 00000000
.
SENTENCIA DE INGENIERÍA INVERSA
Aquellos de ustedes que han seguido Sysinternals saben que no tengo acceso a ningún código fuente de Windows (aparte de las fuentes de los controladores que vienen en el DDK), y que obtengo los entresijos de su implementación mediante el laborioso uso de SoftICE y mi propio desensamblador personalizado.
He encontrado un artículo, "Reverse Engineering: Necessary Function or Illegal Activity?" ("Ingeniería inversa: ¿función necesaria o actividad ilegal?"= (http://www.planetit.com/techcenters/docs/security/news/PIT20010123S0001), en el que se habla de una resolución del Tribunal Federal 9º de Apelaciones de EE. UU. en un causa entre Sony y Connectix que interesará a aquellos que hacen lo mismo. Sony presentó el caso en contra de Connectix después de que Connectix desarrollara su "Estación de juegos virtuales", un programa que le permite ejecutar juegos de Sony PlayStation en un PC, y el tribunal decidió que Connectix estaba dentro de la ley cuando instaló la PlayStation (a través de desensamblado) para permitirle desarrollar su emulador.
Aunque el ámbito de la legalidad de la ingeniería inversa, sobre todo teniendo en cuenta las licencias contractuales que la prohíben, sigue siendo impreciso, este caso se decanta del lado de la ingeniería inversa.
ACTUALIZACIONES DEL KERNEL DE WINDOWS XP
A diferencia del movimiento entre NT 4 y Windows 2000, el kernel de Windows XP ha sufrido cambios más sutiles, muchos de los cuales están destinados a mejoras de rendimiento. Las API de kernel disponibles para los desarrolladores de controladores se han completado con más de 200 nuevas funciones de kernel exportadas, rellenando algunos agujeros anteriores. Por ejemplo, Filemon y otra herramienta Sysinternals obtienen el nombre del proceso que realiza una operación llegando al bloque de entorno de proceso no documentado: en Windows XP podrán llamar a PsGetProcessImageFileName
. Hay casi 3 docenas de nuevas llamadas Ps para obtener y establecer los atributos de los procesos, nuevas API de salida de depuración que le permiten clasificar el tipo de salida y el nivel de depuración, y una nueva llamada al sistema para guardar los subárboles del Registro. También hay un puñado de API como ZwQueryBootOptions
, ZwSetBootEntryOrder
y ZwDeleteBootEntry
para editar el equivalente de Windows XP de 64 bits de Boot.ini, que en lugar de almacenarse en un archivo, se almacena en la memoria no volátil.
Sin embargo, hay cambios más significativos sobre el kernel, la mayoría de los cuales se basan en controladores de dispositivos o compatibilidad con kernel. Por ejemplo, hay un servicio de restauración del sistema que, con la ayuda de un controlador de filtro del sistema de archivos (sr.sys), realiza un seguimiento de los cambios en los archivos para que el sistema se pueda revertir a un momento dado anterior. Hay un controlador de filtro de almacenamiento denominado volsnap.sys que puede, con la cooperación de los controladores del sistema de archivos, realizar una copia a un momento dado de un volumen. Hay un servicio de conmutación rápida de usuarios que usa el soporte de Terminal Services integrado en el kernel para permitir que varios usuarios se conecten y conmuten entre ellos, y un soporte API de desfragmentación mejorado proporcionado por los controladores del sistema de archivos.
Microsoft ha publicado unas notas del producto que describen muchas de las mejoras en http://www.microsoft.com/hwdev/Whistler/download/Whistler_kernel.zip. Hay distintos grados de detalle, dejando muchas preguntas sobre la implementación y el comportamiento sin responder, pero es una revisión general bastante buena. Por supuesto, puedes buscar futuros boletines y artículos de Sysinternals, y mis artículos de revistas de Windows 2000, para responder a algunos de ellos.
REDES DESCONECTADAS
Gran parte de mi desarrollo se centra en aplicaciones habilitadas para la red, pero en Windows 2000 no se pueden probar dichas aplicaciones cuando se arranca un equipo desconectado (como un portátil) en la configuración predeterminada. Esto se debe a que la pila TCP/IP no se activa a menos que el sistema detecte una conexión de red. Esto significa, por ejemplo, que dir \\laptop\c$
(donde "laptop" es el nombre de su equipo) y ping 127.0.0.1
fallan en sistemas desconectados. Si tiene un equipo basado en dominio, esto también puede provocar retrasos dolorosos durante el arranque.
Hay dos soluciones alternativas para esto. Una de ellas es instalar el adaptador de bucle invertido de Microsoft, que es un adaptador de red virtual que se puede instalar usando el Asistente para hardware. La segunda consiste en deshabilitar el sentido multimedia, lo que impide que el sistema detecte que está desconectado, estableciendo un valor del Registro tal y como se describe en el artículo Q239924 de Microsoft KB: http://support.microsoft.com/support/kb/articles/Q239/9/24.ASP. Con cualquiera de estos enfoques, la pila TCP/IP está activa incluso en sistemas desconectados, lo que le permite acceder al sistema local a través de las API de red y las rutas de acceso UNC (como \\laptop\c$
).
WINDEV
Windev, la conferencia para desarrolladores de Windows, se celebra este año en Boston el 11-15 de junio. Todos los nombres más importantes de la programación Win32, los sistemas y .NET estarán allí, y esta es la única vez este año que puede asistir a una sesión sobre aspectos internos de Windows 2000 presentada tanto por David Solomon (www.solsem.com) como por mí. Dave y yo impartiremos conjuntamente el tutorial de un día de duración "Dentro de los fundamentos de Windows 2000" el primer día. También estoy enseñando una sesión sobre la programación de mecanismos de comunicación entre procesos en Windows y otra sobre las novedades de Windows XP.
Puede ver los resúmenes de mis charlas y encontrar un vínculo al sitio web de Windev en http://www.sysinternals.com/ntw2k/info/talk.shtml.
TECHED US
TechEd es la principal conferencia de Microsoft, que atrae a 10 000 personas y ha agotado las entradas en los últimos años. Este año se celebra en Atlanta, Georgia desde el 17-21 de junio, y mientras el enfoque está en .NET, Microsoft me ha invitado a presentar "Un tour de las herramientas de Sysinternals" e "Introducción al análisis de volcado de memoria de Windows NT/2000". También estará David Solomon, que hablará de la administración de memoria y de los procesos y subprocesos internos de Windows 2000.
Para los que estén en Europa, pueden vernos a David y a mí presentar las mismas sesiones en TechEd Europe, que se celebra en Barcelona del 3 al 6 de julio.
Puede ver mis resúmenes y seguir un vínculo a la página principal de TechEd desde http://www.sysinternals.com/ntw2k/info/talk.shtml.
PRÓXIMAMENTE
DENTRO DE LA CAPTURA PREVIA DE WINDOWS XP
Una de las mejoras más notables en Windows XP es su rápido arranque. La captura previa es la base de la mejora. XP supervisa el acceso al disco durante un arranque, almacenando la información para su uso en el arranque posterior, donde usa los datos para cargar aplicaciones en memoria antes de que se haga referencia a ellos. La próxima vez me adentraré en los mecanismos de captura previa para explicar cómo los implementa XP.
Gracias por leer el Boletín de Sysinternals.
Publicado el miércoles, 18 de enero de 2001, 19:04 por ottoh
[Archivo de boletines ^] [< Volumen 2, Número 5] [Volumen 3, Número 2 >]