Arquitectura Windows

Muchos programas corren en modo usuario mientras el Windows Kernel y muchos componentes corren en modo kernel
Debido a esto muchos programas que corren en modo usuario no pueden hacer operaciones sensibles como crear procesos, alojar memoria, acceder a archivos o interactuar con el hardware.
Para ello se usa Windows API
Arquitectura simplificada de Windows: modo usuario, modo kernel y hardware
Arquitectura simplificada de Windows: modo usuario, modo kernel y hardware
Una llamada a CreateFile atraviesa kernel32.dll y ntdll.dll hasta llegar al kernel con un syscall
Una llamada a CreateFile atraviesa kernel32.dll y ntdll.dll hasta llegar al kernel con un syscall

NTDLL.dll

Hace de intermediario entre el user mode y kernel mode. Por ejemplo:
  • NtCreateFile
  • NtCreateThreadEx
  • RtlInitUnicodeString
Un programa puede llamar directamente a ntdll.dll directamente

Security Principals, Users, Groups, SIDs

Windows identifica interamente a los principales (Administrator, Computers …) con identificadores unicos
  • S-1-1-0: Everyone
  • S-1-5-18: Local System
  • S-1-5-32-544: Built-in Administrators group
  • S-1-5-32-545: Built-in Users group
Ej: S-1-5-21-3623811015-3361044348-30300820-1001