> Windows Syscalls

API de usuario → NTDLL → Syscall → Rutina del kernel

Referencia visual de cómo una llamada Win32 termina como una instrucción syscall y qué rutina del kernel la maneja. Los marcadores rojos señalan dónde hookean los EDR y dónde se dispara la telemetría del kernel.

MODO USUARIOKERNELAplicaciónVirtualAllocEx(...)kernel32.dllNtAllocateVirtualMemory(...)ntdll.dllmov r10, rcxmov eax, <SSN>syscallStub de syscall personalizadomov eax, <SSN>syscallsyscall directo (evita ntdll)Punto de hook del EDRHooks inline / IAT en los exports Nt*user → kernel transitionKiSystemCall64KiServiceTable[SSN]NtAllocateVirtualMemory(ntoskrnl.exe)MmAllocateVirtualMemory(Mm subsystem)ETW Threat IntelligenceEventos AllocationVm, ProtectVm, MapViewCallbacks del kernelPsSetCreate*NotifyRoutineEx, ObRegisterCallbacksLos stubs directos evitan el hook user-mode pero la telemetría del kernel sigue activa.

Camino normal

Aplicación → kernel32 → ntdll → instrucción syscall → KiSystemCall64 → rutina. Los EDR interceptan dentro de ntdll.

Camino syscall directo

La aplicación copia un stub en memoria RWX y ejecuta el syscall directamente. Evita el hook de ntdll — pero los callbacks del kernel y ETW Threat Intelligence siguen observando la llamada.

SVG · incrustable · enlaza directamente a /graph