Fix base for got on pie binaries (#618)

pull/621/head
Stuart Nevans Locke 7 years ago committed by Disconnect3d
parent 8b0a98ff9e
commit 45a624e18b

@ -33,7 +33,7 @@ def got(name_filter=''):
return return
if "PIE enabled" in pie_status: if "PIE enabled" in pie_status:
bin_text_base = pwndbg.vmmap.find(pwndbg.elf.entry()).start bin_base = pwndbg.elf.exe().address
relro_color = message.off relro_color = message.off
if 'Partial' in relro_status: if 'Partial' in relro_status:
@ -51,7 +51,7 @@ def got(name_filter=''):
address_val = int(address, 16) address_val = int(address, 16)
if "PIE enabled" in pie_status: # if PIE, address is only the offset from the binary base address if "PIE enabled" in pie_status: # if PIE, address is only the offset from the binary base address
address_val = bin_text_base + address_val address_val = bin_base + address_val
got_address = pwndbg.memory.pvoid(address_val) got_address = pwndbg.memory.pvoid(address_val)
print("[0x%x] %s -> %s" % (address_val, message.hint(name), pwndbg.chain.format(got_address))) print("[0x%x] %s -> %s" % (address_val, message.hint(name), pwndbg.chain.format(got_address)))

Loading…
Cancel
Save