Escucho y olvido, veo y recuerdo, hago y entiendo. * 75-08 Sistemas Operativos Lic. Ing. Osvaldo Clúa 2007 Facultad de Ingeniería Universidad de Buenos Aires Lab 1W – Una introducción a Windows * Proverbio chino atribuido a Confucio (2000 AC). Herramientas para Windows ● ● Algunos componentes del resource Kit para Windows 2000 (ver la página de la materia). Del antiguo SysInternals, ahora de Microsoft – Process Explorer para ver los recursos de un proceso – listDLL para saber cuáles están cargadas – pstools desde la línea de comando dan mucha información FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 2 Arquitectura de XP Aunque los utilitarios distinguen entre GUI y character based subsystems, solo hay un Windows Subsystem. FIUBA 2007 Environment Subsystems: ▬ Conjunto de recursos para ejecutar un tipo de aplicación determinada ●Executive ▬ Nombre colectivo del Kernel, la HAL y los distintos servicios. Corre en Kernel Mode y en Modo Protegido de la CPU. ▬ Ntoskrnl.exe ●Services ▬ Son los procesos que no están asociados a ningún usuario (daemons en Linux/unix) ● 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 3 Environment Subsystems HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems ● ● ● Required: Que cargar al boot del sistema: − Debug Windows Windows: El componente modo usuario del subsistema de Windows (Win32) (crss.exe Client/seRver SubSystem) Kernel: El componente modo Kernel del subsistema de Windows (win32k.sys) FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 4 Los Environment Subsystems ● Exponen un subconjunto de de los servicios del executive a los programas de aplicación – Éstas funciones se llaman desde modo usuario por medio de la Ntdll.dll. ● ● – FIUBA 2007 Conocida como Win32 support library. Es la que se encarga de pasar el Sistema Operativo y el hard a modo Kernel/protegido. Las funciones las lleva a cabo Ntoskrnl.exe 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 5 El Win32K.sys Dependency Module Tree Usando el Dependency Walker Parent imports Export list Dependency Module list Se ejecutó sobre una Virtual. Por eso no se encontraron: DXAPI.SYS (el driver de DirectX) VIDEOPRT.SYS (el Video Port Driver) FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 6 Servicios ● ● No interactúan directamente con el usuario, sino a través del Service Control Manager (SCM, services.exe). Se lanzan al boot. – En el registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services – Tienen tres nombres: ● El del proceso ● El del Registry ● FIUBA 2007 El que se vé desde Panel de Control-Herramientas Administrativas-servicios 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 7 Servicios (RPCSs) Llamadas a procedimientos remotos El Registry (ImagePath) indica que se lanza con una llamada a: %SystemRoot%\system32\svchost -k rpcss FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 8 Servicios (RPCSs) La Herramienta Servicios indica que el servicio comparte el proceso con svchost.exe FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 9 Servicios (RPCSs) El Process Explorer marca en color qué procesos son servicios . Éstos pertenecen al Usuario logoneado FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 10 Servicios (RPCSs) Al seleccionar un proceso en el Process Explorer se pueden ver más detalles DLL con el código Texto en la herramienta servicios Nombre en el registry FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 11 Windows System Calls a) user mode ● ● ● Se hacen a través de dll en modo usuario en un environment subsystem (Kernel32.dll en el Windows Subsystem) Los subsistemas llaman a su vez a Ntdll.dll quién pasa a modo kernel/protegido La USER y GDI API's en user32.dll y gdi32.dll) pasan directamente a Modo Protegido FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 12 Windows System Calls b) kernel mode ● Ntoskrnl en modo Kernel/protegido despacha la interrupción. FIUBA 2007 – Que es atendida por alguna rutina de la misma Ntoskrnl o de Win32k.sys. – De todas formas, está en el kernel y es monolítico (los *.sys se cargan en tiempo de boot). 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 13 Windows System Calls User Mode Call WriteFile(...) Call NtWriteFile(...) Software trap Call NtWriteFile Hace el Write FIUBA 2007 Kernel Mode Aplicación Kernel32.dll Ntdll.dll KiSystemService en Ntoskrnl.exe El Monitor de Performance (perfmon4.exe) cuenta las llamadas al sistema NtWriteFile en Ntoskrnl.exe 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 14 Un programa muy simple (Análisis en el Dependency Walker) Árbol de llamados Programado en el Visual Studio 2005 Resultado de un profile FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 15 Un programa muy simple (Análisis en el Process Explorer) El programa está detenido en el _getch() Las *.nls pertenecen a las National Libraries Support. FIUBA 2007 75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa 16