Skip to content

Latest commit

 

History

History
121 lines (102 loc) · 4.5 KB

File metadata and controls

121 lines (102 loc) · 4.5 KB

KPP Evolution Across Windows Versions

Timeline

Windows Vista (2006) - KPP v1

  • First introduction of Kernel Patch Protection on x64 editions
  • Simple design with fixed timer intervals
  • Single XOR key encryption for the PG context
  • Protected structures: SSDT, IDT, GDT, MSR LSTAR, ntoskrnl .text
  • Relatively straightforward to analyze and understand

Windows 7 (2009) - KPP v1.1

  • Added protection for HalDispatchTable
  • Added KdDebuggerEnabled monitoring
  • Improved timer randomization (basic)
  • Added work item-based check triggers as alternative to timers
  • Fixed several analysis techniques that worked on Vista

Windows 8 (2012) - KPP v2

  • Major overhaul of the encryption scheme
  • Introduced rolling key XOR (key changes per block)
  • Added CI.dll (Code Integrity) to protected structures
  • Added KPRCB critical field monitoring
  • Multiple DPC-based trigger mechanisms
  • Improved anti-debugging: timer intervals shorten with debugger attached
  • Code obfuscation significantly increased

Windows 8.1 (2013) - KPP v2.1

  • Refined rolling key algorithm
  • Added more KPRCB fields to protection
  • Improved exception-based trigger mechanism
  • Better integration with Secure Boot

Windows 10 1507 (2015) - KPP v2.5

  • Multi-key XOR encryption (block-index-dependent sub-keys)
  • Added Shadow SSDT (Win32k) protection
  • Added MSR CSTAR and SFMASK monitoring
  • ntoskrnl read-only data section protection
  • Object type pointer validation
  • Significantly expanded anti-analysis techniques
  • Decoy PG contexts introduced

Windows 10 1607 (2016) - KPP v2.6

  • Improved KASLR integration
  • Context-dependent key derivation
  • Better timer obfuscation
  • VBS (Virtualization-Based Security) interaction begins

Windows 10 1703 (2017) - KPP v2.7

  • HVCI (Hypervisor-enforced Code Integrity) integration
  • Additional kernel module protection
  • Improved self-integrity verification

Windows 10 1809 (2018) - KPP v2.8

  • Enhanced pool allocation obfuscation
  • Additional exception-based triggers
  • Improved anti-debugging measures
  • Retpoline-aware code modifications

Windows 10 1903 (2019) - KPP v2.9

  • Kernel CFG (Control Flow Guard) integration
  • Further encrypted function pointer tables
  • Spectre/Meltdown mitigation interactions

Windows 10 2004/21H2 (2020-2021) - KPP v2.10

  • XFG (eXtended Flow Guard) awareness
  • Improved performance counter monitoring
  • Pool allocation pattern changes
  • Additional driver object validation

Windows 11 21H2 (2021) - KPP v3.0

  • Another major overhaul
  • Introduced AES-like lightweight encryption rounds
  • Hypervisor-assisted verification (VMCALL-based)
  • Pluton security processor integration path
  • Expanded protected structure set
  • New anti-analysis techniques exploiting VBS
  • Context structure layout significantly changed
  • Timer mechanism redesigned

Windows 11 22H2 (2022) - KPP v3.1

  • Refined hypervisor interaction
  • Smart App Control integration
  • Improved pool tag obfuscation
  • Additional KPRCB fields monitored

Windows 11 23H2 (2023) - KPP v3.2

  • Pool tag obfuscation: PG pool tags are XORed with a per-boot random value
  • Driver object table protection
  • Enhanced VBS-based context protection
  • Improved timing side-channel resistance
  • Additional MSR monitoring

Windows 11 24H2 (2024) - KPP v3.3

  • Full hypervisor-assisted KPP mode
  • VMCALL-based integrity verification
  • Context stored in VBS-protected memory (VTL1)
  • Hardware-backed key storage via TPM/Pluton
  • Significanty harder to analyze without hypervisor access
  • New timer identification heuristics needed
  • Pool scanning requires VTL0/VTL1 awareness

Key Trends

  1. Increasing encryption complexity: From simple XOR to multi-key to AES-like schemes
  2. Hypervisor integration: Progressive movement toward VBS-protected verification
  3. Expanding protection scope: More structures protected with each release
  4. Better anti-analysis: Each version adds new obfuscation and anti-debugging
  5. Hardware integration: TPM, Pluton, and hardware security features leveraged
  6. Performance optimization: Despite more checks, PG overhead has decreased through sampling and batching

Analysis Implications

Version Analysis Difficulty Key Technique
Vista/7 Low Direct memory scanning
8/8.1 Medium Rolling key recovery
10 (early) Medium-High Multi-key + context analysis
10 (late) High Advanced heuristics needed
11 (early) Very High Hypervisor awareness needed
11 24H2 Extreme VBS/VTL1 access required