def xrefcount(self, addr): count = 0 xrefs = xrefblk_t() if xrefs.first_to(addr, 0): count += 1 while xrefs.next_to(): count += 1 return count
def get_prev_insn(self, address): xb = ida_xref.xrefblk_t() ok = xb.first_to(address, ida_xref.XREF_ALL) while ok and xb.iscode: if xb.type == ida_xref.fl_F: return xb.frm ok = xb.next_to() return -1
def xrefs_to_lib_entry(): tl_api_lib_entry = ida_name.get_name_ea(ida_idaapi.BADADDR, 'tlApiLibEntry') if tl_api_lib_entry == ida_idaapi.BADADDR: return xref = ida_xref.xrefblk_t() xref.first_to(tl_api_lib_entry, ida_xref.XREF_DATA) while True: yield xref.frm if not xref.next_to(): break
def XrefsTo(ea, flags=0): """ Return all references to address 'ea' @param ea: Reference address @param flags: any of ida_xref.XREF_* flags Example:: for xref in XrefsTo(here(), 0): print xref.type, XrefTypeName(xref.type), \ 'from', hex(xref.frm), 'to', hex(xref.to) """ xref = ida_xref.xrefblk_t() if xref.first_to(ea, flags): yield _copy_xref(xref) while xref.next_to(): yield _copy_xref(xref)
def XrefsFrom(ea, flags=0): """ Return all references from address 'ea' @param ea: Reference address @param flags: one of ida_xref.XREF_ALL (default), ida_xref.XREF_FAR, ida_xref.XREF_DATA Example:: for xref in XrefsFrom(here(), 0): print(xref.type, XrefTypeName(xref.type), \ 'from', hex(xref.frm), 'to', hex(xref.to)) """ xref = ida_xref.xrefblk_t() if xref.first_from(ea, flags): yield _copy_xref(xref) while xref.next_from(): yield _copy_xref(xref)