MCPcopy Create free account
hub / github.com/longld/peda / strings

Method strings

peda.py:4876–4917  ·  view source on GitHub ↗

Display printable strings in memory Usage: MYNAME start end [minlen] MYNAME mapname [minlen] MYNAME (display all printable strings in binary - slow)

(self, *arg)

Source from the content-addressed store, hash-verified

4874 xinfo.options = ["register"]
4875
4876 def strings(self, *arg):
4877 """
4878 Display printable strings in memory
4879 Usage:
4880 MYNAME start end [minlen]
4881 MYNAME mapname [minlen]
4882 MYNAME (display all printable strings in binary - slow)
4883 """
4884 (start, end, minlen) = normalize_argv(arg, 3)
4885
4886 mapname = None
4887 if start is None:
4888 mapname = "binary"
4889 elif to_int(start) is None or (end < start):
4890 (mapname, minlen) = normalize_argv(arg, 2)
4891
4892 if minlen is None:
4893 minlen = 1
4894
4895 if mapname:
4896 maps = peda.get_vmmap(mapname)
4897 else:
4898 maps = [(start, end, None, None)]
4899
4900 if not maps:
4901 warning_msg("failed to get memory map for %s" % mapname)
4902 return
4903
4904 text = ""
4905 regex_pattern = "[%s]{%d,}" % (re.escape(string.printable), minlen)
4906 p = re.compile(regex_pattern.encode('utf-8'))
4907 for (start, end, _, _) in maps:
4908 mem = peda.dumpmem(start, end)
4909 if not mem: continue
4910 found = p.finditer(mem)
4911 if not found: continue
4912
4913 for m in found:
4914 text += "0x%x: %s\n" % (start+m.start(), string_repr(mem[m.start():m.end()].strip(), show_quotes=False))
4915
4916 pager(text)
4917 return
4918
4919 def sgrep(self, *arg):
4920 """

Callers

nothing calls this directly

Calls 8

normalize_argvFunction · 0.85
to_intFunction · 0.85
warning_msgFunction · 0.85
string_reprFunction · 0.85
pagerFunction · 0.85
get_vmmapMethod · 0.80
startMethod · 0.80
dumpmemMethod · 0.45

Tested by

no test coverage detected