def __init__(self, func): self.src = func ea = func.startEA self.ea = ea self.name = idaapi.get_func_name(ea) self.elts = [] if idaapi.is_func_tail(func): self.name += "_tail_" + str(ea) fr = idaapi.get_frame(func) struc_vars = [] if fr == None: self.frame = None else: self.frame = struct.frame_node(fr, func) struc_vars = self.frame.struct_vars while ea < func.endEA: if idaapi.isData(idaapi.getFlags(ea)): self.elts.append(data.data_node(ea, idaapi.next_not_tail(ea))) else: if ea == func.startEA and not (idaapi.is_func_tail(func)): self.elts.append(insn.insn_node(ea, struc_vars)) else: self.elts.append( names.name_wrap_insn(ea, insn.insn_node(ea, struc_vars))) ea = idaapi.next_head(ea, func.endEA)
def __init__(self, func): self.src = func ea = func.startEA self.ea = ea self.name = idaapi.get_func_name(ea) self.elts = [] if idaapi.is_func_tail(func): self.name += "_tail_"+str(ea) fr = idaapi.get_frame(func) struc_vars = [] if fr == None: self.frame = None else: self.frame = struct.frame_node(fr, func) struc_vars = self.frame.struct_vars while ea < func.endEA: if idaapi.isData(idaapi.getFlags(ea)): self.elts.append(data.data_node(ea, idaapi.next_not_tail(ea))) else: if ea == func.startEA and not (idaapi.is_func_tail(func)): self.elts.append(insn.insn_node(ea, struc_vars)) else: self.elts.append(names.name_wrap_insn(ea, insn.insn_node(ea, struc_vars))) ea = idaapi.next_head(ea, func.endEA)
def __init__(self, seg): self.content = None self.segclass = idaapi.get_segm_class(seg) self.name = idaapi.get_segm_name(seg) self.content = data.data_node(seg.startEA, seg.endEA)
def __init__(self, low, high): self.elts = [] for i in range(idaapi.get_fchunk_qty()): f = idaapi.getn_fchunk(i) if f.startEA >= low and f.endEA <= high: self.elts.append(function_node(f)) datalow = f.endEA nextchunk = idaapi.getn_fchunk(i + 1) if datalow != idaapi.BADADDR and not (nextchunk is None): datahigh = nextchunk.startEA if datahigh != idaapi.BADADDR: self.elts.append(data.data_node(datalow, datahigh))
def __init__(self, low, high): self.elts = [] for i in range(idaapi.get_fchunk_qty()): f = idaapi.getn_fchunk(i) if f.startEA >= low and f.endEA <= high: self.elts.append(function_node(f)) datalow = f.endEA nextchunk = idaapi.getn_fchunk(i+1) if datalow != idaapi.BADADDR and not (nextchunk is None): datahigh = nextchunk.startEA if datahigh != idaapi.BADADDR: self.elts.append(data.data_node(datalow, datahigh))