addressed comments

pull/3390/head
jxuanli 1 month ago
parent ac34ad5d37
commit b958d62055

@ -384,22 +384,15 @@ class Aarch64PagingInfo(ArchPagingInfo):
@property
@pwndbg.lib.cache.cache_until("stop")
def module_start(self):
# this is only used for marking the end of module_start
self.module_end = -1
res = None
for page in kernel_vmmap_pages():
for page in kernel_vmmap_pages()[::-1]:
if page.start >= self.kbase:
continue
if page.start < self.vmalloc:
break
if page.execute:
res = page.start
if res is None:
return INVALID_ADDR
prev = None
for page in kernel_vmmap_pages():
if page.start >= res:
if prev is not None and page.start > prev + 0x1000:
break
prev = self.module_end = page.end
break
return res
def _PAGE_OFFSET(self, va): # aka PAGE_START
@ -576,7 +569,7 @@ class Aarch64PagingInfo(ArchPagingInfo):
page = pages[i]
if page.start > self.kbase + self.ksize:
continue
if self.module_start <= page.start < self.module_end:
if self.module_start <= page.start < self.kbase:
page.objfile = self.KERNELDRIVER
continue
if page.start < self.kbase:

@ -34,6 +34,7 @@ class KernelVmmap:
self.pi = pwndbg.aglib.kernel.arch_paginginfo()
if self.pi:
self.sections = self.pi.markers()
self.adjust()
def get_name(self, addr: int) -> str:
if addr is None or self.sections is None:
@ -423,9 +424,9 @@ def kernel_vmmap() -> Tuple[pwndbg.lib.memory.Page, ...]:
pages = kernel_vmmap_pages()
kv = KernelVmmap(pages)
kv.adjust()
if kernel_vmmap_mode == "monitor" and pwndbg.aglib.arch.name == "x86-64":
# TODO: check version here when QEMU displays the x bit for x64
# see: https://github.com/pwndbg/pwndbg/pull/3020#issuecomment-2914573242
for page in pages:
if page.objfile == kv.pi.ESPSTACK:
continue

Loading…
Cancel
Save