MCPcopy Create free account
hub / github.com/HexHive/NASS / do_invoke

Method do_invoke

tools/gef.py:5819–5871  ·  view source on GitHub ↗
(self, argv: List[str])

Source from the content-addressed store, hash-verified

5817
5818 @only_if_gdb_running
5819 def do_invoke(self, argv: List[str]) -> None:
5820 argc = len(argv)
5821 if argc < 1:
5822 self.usage()
5823 return
5824
5825 if argc > 3 and argv[0].startswith("--regex"):
5826 pattern = ' '.join(argv[3:])
5827 pattern = ast.literal_eval("b'" + pattern + "'")
5828
5829 addr_start = parse_address(argv[1])
5830 addr_end = parse_address(argv[2])
5831
5832 for loc in self.search_binpattern_by_address(pattern, addr_start, addr_end):
5833 self.print_loc(loc)
5834
5835 return
5836
5837 pattern = argv[0]
5838 endian = gef.arch.endianness
5839
5840 if argc >= 2:
5841 if argv[1].lower() == "big": endian = Endianness.BIG_ENDIAN
5842 elif argv[1].lower() == "little": endian = Endianness.LITTLE_ENDIAN
5843
5844 if is_hex(pattern):
5845 if endian == Endianness.BIG_ENDIAN:
5846 pattern = "".join(["\\x" + pattern[i:i + 2] for i in range(2, len(pattern), 2)])
5847 else:
5848 pattern = "".join(["\\x" + pattern[i:i + 2] for i in range(len(pattern) - 2, 0, -2)])
5849
5850 if argc == 3:
5851 info(f"Searching '{Color.yellowify(pattern)}' in {argv[2]}")
5852
5853 if "0x" in argv[2]:
5854 start, end = parse_string_range(argv[2])
5855
5856 loc = lookup_address(start)
5857 if loc.valid:
5858 self.print_section(loc.section)
5859
5860 for loc in self.search_pattern_by_address(pattern, start, end):
5861 self.print_loc(loc)
5862 else:
5863 section_name = argv[2]
5864 if section_name == "binary":
5865 section_name = get_filepath() or ""
5866
5867 self.search_pattern(pattern, section_name)
5868 else:
5869 info(f"Searching '{Color.yellowify(pattern)}' in memory")
5870 self.search_pattern(pattern, "")
5871 return
5872
5873
5874@register

Callers

nothing calls this directly

Calls 14

print_locMethod · 0.95
print_sectionMethod · 0.95
search_patternMethod · 0.95
parse_addressFunction · 0.85
is_hexFunction · 0.85
infoFunction · 0.85
parse_string_rangeFunction · 0.85
lookup_addressFunction · 0.85
get_filepathFunction · 0.85
usageMethod · 0.80

Tested by

no test coverage detected