Developer knowledge network · moderated exchange

Супольнасць UnreliableCode

Супольнасць распрацоўшчыкаў даследаванняў, зваротнага праектавання і кадавання

Knowledge indexжыць
4Categories
919Threads
2.8KПаведамленні
Analysis

Page Table Entry (PTE) manipulation: clearing User/Supervisor bit safely

stack_smasher
Kernel Explorer
MEMBER
прадстаўнік: 111
Дата далучэння: Feb 2019
Паведамленні: 30
Дзякуй: 18
1 месяцаў таму · Jul 19, 2026 9:46 AM
#1

How Page Table Entries (PTEs) govern CPU access permissions:

  • Bit 0 (Present): Page is in physical RAM.
  • Bit 1 (Read/Write): 0 = Read-Only, 1 = Read/Write.
  • Bit 2 (User/Supervisor): 0 = Ring 0 only, 1 = Accessible from Ring 3 (Userland).
  • Bit 63 (NX / XD): No-Execute bit.

Modifying the User/Supervisor bit in a kernel page PTE allows userland code to access kernel buffers directly without syscall overhead. Always invalidate the TLB entry with __invlpg() after modifying PTE bits!

kernel_komrade
Driver Dev
MEMBER
прадстаўнік: 145
Дата далучэння: Feb 2019
Паведамленні: 26
Дзякуй: 45
1 месяцаў таму · Jul 19, 2026 12:19 PM
#2

Forgetting __invlpg() causes the CPU to use stale cached TLB translation entries and crash. Essential rule.

hypervisor_hank
Kernel Wizard
MEMBER
прадстаўнік: 108
Дата далучэння: Feb 2020
Паведамленні: 17
Дзякуй: 44
1 месяцаў таму · Jul 19, 2026 10:49 PM
#3

Clean low-level paging architecture breakdown.