diff --git a/pwndbg/elf.py b/pwndbg/elf.py index 9c076c94d..950c78b3b 100644 --- a/pwndbg/elf.py +++ b/pwndbg/elf.py @@ -234,6 +234,11 @@ def get_ehdr(pointer): We expect the `pointer` to be an address from the binary. """ + + # This just does not work :( + if pwndbg.qemu.is_usermode(): + return None, None + vmmap = pwndbg.vmmap.find(pointer) base = None diff --git a/pwndbg/vmmap.py b/pwndbg/vmmap.py index 51dd66fcc..c09cf28a3 100644 --- a/pwndbg/vmmap.py +++ b/pwndbg/vmmap.py @@ -52,8 +52,14 @@ def get(): # following links. pages.extend(info_auxv()) - if pages: pages.extend(info_sharedlibrary()) - else: pages.extend(info_files()) + if pages: + pages.extend(info_sharedlibrary()) + else: + if pwndbg.qemu.is_usermode(): + return ( + pwndbg.memory.Page(0, pwndbg.arch.ptrmask, 7, 0, '[qemu-user]'), + ) + pages.extend(info_files()) pages.extend(pwndbg.stack.stacks.values())