def _delete_deobf_drefs(): for b in blocks: for i in range(b[1]): addr = b[0] + (i*8) derefs = get_drefs(addr) for d in derefs: idaapi.del_dref(d, addr)
def clear_struct_xrefs(self): if not self.node.create(NETNODE_NAME): xrefs = self.load() for (ea, struct_id, member_id) in xrefs.keys(): if member_id is None: idaapi.del_dref(ea, struct_id) else: idaapi.del_dref(ea, member_id) self.xrefs = {} self.save() log.debug("Cleared %d xrefs", len(xrefs))
def remove_all_refs(ea): """Remove all references to something.""" assert False dref_eas = list(drefs_from(ea)) cref_eas = list(crefs_from(ea)) for ref_ea in dref_eas: idaapi.del_dref(ea, ref_ea) for ref_ea in cref_eas: idaapi.del_cref(ea, ref_ea, False) idaapi.del_cref(ea, ref_ea, True)
def del_ref(frm, to): idaapi.del_dref(frm, to) idaapi.del_dref(to, frm) idaapi.del_cref(frm, to, 0) idaapi.del_cref(to, frm, 0)
def del_data(ea, target=None): if target is None: [idaapi.del_dref(ea, target) for target in xref.data_down(ea)] return False if len(xref.data_down(ea)) > 0 else True idaapi.del_dref(ea, target) return target not in xref.data_down(ea)
def del_data(ea, target=None): if target is None: [ idaapi.del_dref(ea, target) for target in xref.data_down(ea) ] return False if len(xref.data_down(ea)) > 0 else True idaapi.del_dref(ea, target) return target not in xref.data_down(ea)