def get_xrefs_for_string(s, filter_func=None): """filter_func(x,s) choose x if True for magic str (s)""" if filter_func is None: def filter_func(x, string): return str(x) == string filtered_strings = filter(lambda x: filter_func(x, s), get_strings()) strings_xrefs = [] for s in filtered_strings: xrefs = [] xref = ida_xref.get_first_dref_to(s.ea) while xref != BADADDR: xrefs.append(xref) xref = ida_xref.get_next_dref_to(s.ea, xref) strings_xrefs.append([str(s), xrefs]) return strings_xrefs
def get_drefs(ea): xref = ida_xref.get_first_dref_to(ea) while xref != BADADDR: yield xref xref = ida_xref.get_next_dref_to(ea, xref)