Try fs/gs_base registers before ptrace'ing

pull/1036/head
lebr0nli 3 years ago committed by Disconnect3d
parent f7e107c1d7
commit afbe6f0c6f

@ -389,12 +389,24 @@ class module(ModuleType):
@property @property
@pwndbg.memoize.reset_on_stop @pwndbg.memoize.reset_on_stop
def fsbase(self): def fsbase(self):
return self._fs_gs_helper(ARCH_GET_FS) try:
# We can try fs_base register in GDB >= 8.
assert get_register == gdb79_get_register
fs_base = get_register("fs_base")
return fs_base
except (ValueError, AssertionError):
return self._fs_gs_helper(ARCH_GET_FS)
@property @property
@pwndbg.memoize.reset_on_stop @pwndbg.memoize.reset_on_stop
def gsbase(self): def gsbase(self):
return self._fs_gs_helper(ARCH_GET_GS) try:
# We can try gs_base register in GDB >= 8.
assert get_register == gdb79_get_register
gs_base = get_register("gs_base")
return gs_base
except (ValueError, AssertionError):
return self._fs_gs_helper(ARCH_GET_GS)
@pwndbg.memoize.reset_on_stop @pwndbg.memoize.reset_on_stop
def _fs_gs_helper(self, which): def _fs_gs_helper(self, which):

Loading…
Cancel
Save