(address_maybe)
return page
Given a potential address, check to see what permissions it has.

    Returns:
        Page object

    Note:
        Adds the Page object to a persistent list of pages which are
        only reset when the process dies.  This means pages which are
        added this way will not be removed when unmapped.

        Also assumes the entire contiguous section has the same permission.
Given a potential address, check to see what permissions it has.
Given a potential address check to see what permissions it has .
def explore(address_maybe):
    """
    Given a potential address, check to see what permissions it has.

    Returns:
        Page object

    Note:
        Adds the Page object to a persistent list of pages which are
        only reset when the process dies.  This means pages which are
        added this way will not be removed when unmapped.

        Also assumes the entire contiguous section has the same permission.
    """
    if proc_pid_maps():
        return None

    address_maybe = pwndbg.memory.page_align(address_maybe)

    flags = 4 if pwndbg.memory.peek(address_maybe) else 0

    if not flags:
        return None

    flags |= 2 if pwndbg.memory.poke(address_maybe) else 0
    flags |= 1 if not pwndbg.stack.nx               else 0

    page = find_boundaries(address_maybe)
    page.objfile = '<explored>'
    page.flags = flags

    explored_pages.append(page)

    return page
def explore ( address_maybe ) : if proc_pid_maps ( ) : return None address_maybe = pwndbg . memory . page_align ( address_maybe ) flags = 4 if pwndbg . memory . peek ( address_maybe ) else 0 if not flags : return None flags |= 2 if pwndbg . memory . poke ( address_maybe ) else 0 flags |= 1 if not pwndbg . stack . nx else 0 page = find_boundaries ( address_maybe ) page . objfile = '<explored>' page . flags = flags explored_pages . append ( page ) return page