Lab Windows - Universidad de Buenos Aires

Anuncio
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
Descargar