(addr, max_pages=1024)
return addr
find_lower_boundary(addr, max_pages=1024) -> int

    Brute-force search the lower boundary of a memory mapping,
    by reading the first byte of each page, until an unmapped
    page is found.
find_lower_boundary(addr, max_pages=1024) -> int
find_lower_boundary ( addr max_pages = 1024 ) - > int
def find_lower_boundary(addr, max_pages=1024):
    """find_lower_boundary(addr, max_pages=1024) -> int

    Brute-force search the lower boundary of a memory mapping,
    by reading the first byte of each page, until an unmapped
    page is found.
    """
    addr = pwndbg.memory.page_align(int(addr))
    try:
        for i in range(max_pages):
            pwndbg.memory.read(addr, 1)
            addr -= pwndbg.memory.PAGE_SIZE

            # Sanity check (see comment in find_upper_boundary)
            if addr < 0:
                return 0

    except gdb.MemoryError:
        addr += pwndbg.memory.PAGE_SIZE
    return addr
def find_lower_boundary ( addr , max_pages = 1024 ) : addr = pwndbg . memory . page_align ( int ( addr ) ) try : for i in range ( max_pages ) : pwndbg . memory . read ( addr , 1 ) addr -= pwndbg . memory . PAGE_SIZE # Sanity check (see comment in find_upper_boundary) if addr < 0 : return 0 except gdb . MemoryError : addr += pwndbg . memory . PAGE_SIZE return addr