Skip to content

FreeList/ListHints Support #25

@apl3b

Description

@apl3b

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions