Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)