>_dkom.dev
posts courses about rss spor ↗

# drivers

  • 2025.10.13 DSE bypass: why CiValidateImageHeader is the right target

    Driver Signature Enforcement is enforced by CiValidateImageHeader in CI.dll, not by g_CiOptions alone. Patching the function directly with a physical write or PTE flip …

    windowskerneldriversdseevasion
  • 2025.05.12 Kernel UDP socket server via WSK: covert comms with no IOCTL surface

    WSK lets a kernel driver bind a UDP socket and communicate with user mode without a device object, symbolic link, or IOCTL dispatch table. EnumDeviceObjects and …

    windowskerneldriversevasioninternals
  • 2024.12.09 Finding EPROCESS from the GS register

    Most kernel code that needs a process structure starts from PsInitialSystemProcess or PsActiveProcessHead – both exported symbols. If the export table is …

    windowskernelinternalsdrivers
  • 2024.11.04 The four callbacks an EDR kernel driver uses

    PsSetCreateProcessNotifyRoutineEx, PsSetCreateThreadNotifyRoutine, PsSetLoadImageNotifyRoutine, and ObRegisterCallbacks: what each one gives you, what it misses, and how …

    windowskerneldriversinternals
  • 2024.08.19 Thread start address inspection: how EDR kernel drivers catch shellcode

    PsSetCreateThreadNotifyRoutine fires for every new thread. This post shows how an EDR kernel driver turns that callback into a start-address inspection pipeline, what the …

    windowskerneldriversinternalsevasion
  • 2024.06.10 Handle stripping: how EDR kernel drivers protect their own process

    ObRegisterCallbacks lets a kernel driver intercept every handle open before it completes. EDRs use this to strip dangerous access bits from any handle targeting their own …

    windowskerneldriversinternals
  • 2023.05.08 Fingerprinting anti-cheat by its pool allocation pattern

    BattleEye resolves ExAllocatePool at runtime via MmGetSystemRoutineAddress. Intercept that resolution and you can gate every pool allocation BE makes – returning …

    windowskernelanticheatinternalsdrivers
  • 2023.02.20 Intercepting BattleEye's ObRegisterCallbacks at registration time

    Removing BattleEye’s object callbacks is detectable. Intercepting the registration itself lets you subvert the callback’s effect while leaving it fully …

    windowskernelanticheatdriversinternals
  • 2021.11.22 Code caves in signed kernel drivers

    Unsigned executable memory in the kernel is an immediate red flag. Shellcode placed in the padding bytes of a legitimate signed Microsoft driver executes inside that …

    windowskerneldriversevasioninternals
  • 2021.02.01 Walking a Driver's IOCTL Dispatch by Hand

    Finding the IOCTL dispatch table in a stripped kernel driver, decoding CTL_CODEs from first principles, and the triage methodology for prioritising attack surface before …

    windowskernelreversingioctldrivers
  • 2020.09.14 NtLoadDriver vs SCM: what each leaves behind

    Creating a service through SCM and calling NtLoadDriver directly leave different artifacts. Knowing exactly what each approach leaves – event log entries, registry …

    windowskerneldriversinternalsevasion
© 2026 Emil Sørbrøden / built with Hugo /rss