コード例 #1
0
ファイル: events.py プロジェクト: paulfariello-syn/IDArling
 def __call__(self):
     struc = ida_struct.get_struc_id(self.sname)
     sptr = ida_struct.get_struc(struc)
     cmt = self.cmt if self.cmt else ""
     if self.smname:
         mptr = ida_struct.get_member_by_name(sptr, self.smname)
         ida_struct.set_member_cmt(mptr, cmt, self.repeatable_cmt)
     else:
         ida_struct.set_struc_cmt(sptr.id, cmt, self.repeatable_cmt)
コード例 #2
0
 def __call__(self):
     struc = ida_struct.get_struc_id(Event.encode(self.sname))
     sptr = ida_struct.get_struc(struc)
     cmt = Event.encode(self.cmt if self.cmt else '')
     if self.smname:
         mptr = ida_struct.get_member_by_name(sptr,
                                              Event.encode(self.smname))
         ida_struct.set_member_cmt(mptr, cmt, self.repeatable_cmt)
     else:
         ida_struct.set_struc_cmt(sptr.id, cmt, self.repeatable_cmt)
コード例 #3
0
    def apply(cls, data):
        struct_id = ida_struct.add_struc(idaapi.BADADDR, data['name'],
                                         data['union'])
        if 'comment' in data and data['comment']:
            ida_struct.set_struc_cmt(struct_id, data['comment'], False)
        if 'repeatable_comment' in data and data['comment']:
            ida_struct.set_struc_cmt(struct_id, data['repeatable_comment'],
                                     True)

        if 'members' in data and data['members']:
            struct = ida_struct.get_struc(struct_id)
            for member_idx, member_data in data['members']:
                cls.apply_member(struct, member_data)