コード例 #1
0
ファイル: struct.py プロジェクト: Joubei/project-ironfist
 def __init__(self, struc):
     self.mems = []
     self.src = struc
     self.tid = struc.id
     self.name = idaapi.get_struc_name(self.tid)
     self.deps = set([])
     for i in range(struc.memqty):
         m = struc.get_member(i)
         self.mems.append(member.create_member_node(m, struc))
         d = util.member_str_id(m, struc)
         if d != None:
             self.deps = self.deps | set([d])
コード例 #2
0
 def __init__(self, struc):
     self.mems = []
     self.src = struc
     self.tid = struc.id
     self.name = idaapi.get_struc_name(self.tid)
     self.deps = set([])
     for i in range(struc.memqty):
         m = struc.get_member(i)
         self.mems.append(member.create_member_node(m, struc))
         d = util.member_str_id(m, struc)
         if d != None:
             self.deps = self.deps | set([d])
コード例 #3
0
ファイル: member.py プロジェクト: Joubei/project-ironfist
    def __init__(self, member, parent):
        ##These objects below can apparently be mutated by ua stuff.
        #self.src = member
        #self.src_parent = parent

        self.name = idaapi.get_member_name(member.id)
        self.flags = member.flag
        self.val = value.get_node_for_member(member, parent)
        self.eoff = member.eoff
        self.soff = member.soff

        self.decl = data.get_decl_for_member(member, parent)
        self.unit_size = data.get_member_unit_size(member, parent)
        
        self.struc_id = None
        if idaapi.isStruct(self.flags):
            self.struc_id = util.member_str_id(member, parent)
コード例 #4
0
ファイル: member.py プロジェクト: jkoppel/Revitalize
    def __init__(self, member, parent):
        ##These objects below can apparently be mutated by ua stuff.
        #self.src = member
        #self.src_parent = parent

        self.name = idaapi.get_member_name(member.id)
        self.flags = member.flag
        self.val = value.get_node_for_member(member, parent)
        self.eoff = member.eoff
        self.soff = member.soff

        self.decl = data.get_decl_for_member(member, parent)
        self.unit_size = data.get_member_unit_size(member, parent)

        self.struc_id = None
        if idaapi.isStruct(self.flags):
            self.struc_id = util.member_str_id(member, parent)
コード例 #5
0
def get_decl_for_member(mem, struc):
    if idaapi.isStruct(mem.flag):
        return idaapi.get_struc_name(util.member_str_id(mem, struc))
    else:
        return get_decl_for_prim(mem.flag)
コード例 #6
0
def get_member_unit_size(mem, struc):
    if idaapi.isStruct(mem.flag):
        return idaapi.get_struc_size(util.member_str_id(mem, struc))
    else:
        return get_prim_unit_size(mem.flag)
コード例 #7
0
ファイル: data.py プロジェクト: Joubei/project-ironfist
def get_decl_for_member(mem, struc):
    if idaapi.isStruct(mem.flag):
        return idaapi.get_struc_name(util.member_str_id(mem, struc))
    else:
        return get_decl_for_prim(mem.flag)
コード例 #8
0
ファイル: data.py プロジェクト: Joubei/project-ironfist
def get_member_unit_size(mem, struc):
    if idaapi.isStruct(mem.flag):
        return idaapi.get_struc_size(util.member_str_id(mem, struc))
    else:
        return get_prim_unit_size(mem.flag)
コード例 #9
0
def get_node_for_member(mem, parent):
    if idaapi.isStruct(mem.flag):
        return unset_structure_node(idaapi.get_struc(util.member_str_id(mem, parent)))
    else:
        return unset_primitive_node()