When running !mona heap I would like to see the state of the FreeList and ListHints for the OSs that support it.
Here is a set of interesting information I would like to see:
- The full free list
- The bins that have at least a free chunk in it and details about the chunk (their index, their size)
- The link between free chunks
- More details about these chunks (their address, to which Segment did they belong)
I would like to see this information in an ordered and intuitive way, something like:
Peb : 0x00311000, NtGlobalFlag : 0x00000070
Heaps:
------
0x00700000 (1 segment(s) : 0x00700000) * Default process heap Encoding key: 0x00009ae33c160b7f
[+] Processing heap 0x00700000 - Heap 0 [Default]
[+] BackEnd Allocator : FreeLists
[+] Getting FreeLists for heap 0x00700000
Bin ExpSize Chunks
--- ------------------------------------ ------
---------------------------------------------------------
[ 0] (ExpSize: >0x7f blocks | >0x3f8 bytes) 2
0x00709318 (Size: 0x10a blocks | 0x850 bytes | UserSize: 0x109 blocks | 0x848 bytes) [Segment: Segment00-00 - 0x00700000]
0x0070a108 (Size: 0x5db blocks | 0x2ed8 bytes | UserSize: 0x5da blocks | 0x2ed0 bytes) [Segment: Segment00-00 - 0x00700000]
---------------------------------------------------------
[ 2] (ExpSize: 0x2 blocks | 0x10 bytes) 3
0x00708fb0 (UserSize: 0x1 blocks | 0x8 bytes) [Segment: Segment00-00 - 0x00700000]
0x00707be0 (UserSize: 0x1 blocks | 0x8 bytes) [Segment: Segment00-00 - 0x00700000]
0x00707e00 (UserSize: 0x1 blocks | 0x8 bytes) [Segment: Segment00-00 - 0x00700000]
---------------------------------------------------------
[ 11] (ExpSize: 0xb blocks | 0x58 bytes) 1
0x00709060 (UserSize: 0xa blocks | 0x50 bytes) [Segment: Segment00-00 - 0x00700000]
[+] Total free chunks: 6 across 3 bins
When running
!mona heapI would like to see the state of the FreeList and ListHints for the OSs that support it.Here is a set of interesting information I would like to see:
I would like to see this information in an ordered and intuitive way, something like: