示例#1
0
    def __process_names(self):
        names = list()

        for i in range(0, ida_name.get_nlist_size()):
            ea = ida_name.get_nlist_ea(i)
            if ida_funcs.get_func(ea) is not None:
                continue

            name = {
                'rva': ea - self._base,
                'name': ida_name.get_nlist_name(i),
                'name_demangled':
                ida_name.get_demangled_name(ea, 0xFFFF, 0, 0),
                'is_public': ida_name.is_public_name(ea),
                'is_func': ida_funcs.get_func(ea) is not None
            }

            # PE32/PE32+ only support binaries up to 2GB
            if name['rva'] >= 2**32:
                print('RVA out of range for name: ' + name['name'],
                      file=sys.stderr)

            names.append(name)

        return names
示例#2
0
def Names():
    """
    Returns a list of names

    @return: List of tuples (ea, name)
    """
    for i in xrange(ida_name.get_nlist_size()):
        ea   = ida_name.get_nlist_ea(i)
        name = ida_name.get_nlist_name(i)
        yield (ea, name)
示例#3
0
def processNames():
    names = list()

    for i in xrange(ida_name.get_nlist_size()):
        ea = ida_name.get_nlist_ea(i)

        name = {
            'ea': ea,
            'name': ida_name.get_nlist_name(i),
            'is_public': ida_name.is_public_name(ea),
            'is_func': ida_funcs.get_func(ea) is not None
        }

        names.append(name)

    return names