Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Xbox Page Heap
What is it?
Page heap is special DBG-only heap implementation that is specifically designed to detect heap corruption issues.

How does it work?
xPageHeap works by leveraging extra virtual address space. Every heap allocation corresponds to its own unique page(s) of virtual memory, marked PAGE_READWRITE, with corresponding physical pages committed to back the virtual allocation. The heap allocation is aligned such that it abuts the end-of-page boundary for the last page required. Immediately following the heap allocation page is another virtual page marked PAGE_NOACCESS (with no physical memory committed). Any reads or writes to this unmapped memory result in STATUS_ACCESS_VIOLATION exceptions. Immediately preceding the heap allocation is a landfill pattern that enables integrity-checks of stray underrun writes, but is still marked PAGE_READWRITE. Since so much virtual address space is leveraged heap allocations which would typically exhibit locality in a retail heap are now far apart, often with unmapped virtual address separating them.

Forum Jump:

Users browsing this thread: 1 Guest(s)