Enhance string decoding

pull/3/head
Zach Riggle 11 years ago
parent b65b1ac64d
commit 8d53c8cf77

@ -52,7 +52,7 @@ def enhance(value):
packed = pwndbg.arch.pack(int(value))
if all(c in string.printable.encode('utf-8') for c in packed):
if len(retval) > 4:
retval = '%s (%r)' % (retval, packed.decode())
retval = '%s (%r)' % (retval, str(packed.decode('ascii', 'ignore')))
return retval

@ -21,14 +21,17 @@ def update_length():
def get(address):
try:
sz = gdb.Value(address).cast(pwndbg.typeinfo.pchar).string()
sz = gdb.Value(address)
sz = sz.cast(pwndbg.typeinfo.pchar)
sz = sz.string('ascii', 'ignore', length)
sz = str(sz)
except Exception as e:
return None
if not all(s in string.printable for s in sz.rstrip('\x00')):
return None
if len(sz) < length + 3:
if len(sz) < length:
return sz
return sz[:length] + '...'
Loading…
Cancel
Save