def __call__(self):
     mt = ida_nalt.opinfo_t()
     if ida_bytes.is_struct(self.flag):
         mt.tid = self.extra['id']
     if ida_bytes.is_off0(self.flag) or ida_bytes.is_off1(self.flag):
         mt.ri = ida_nalt.refinfo_t(self.extra['flags'], self.extra['base'],
                                    self.extra['target'],
                                    self.extra['tdelta'])
     if ida_bytes.is_strlit(self.flag):
         mt.strtype = self.extra['strtype']
     struc = ida_struct.get_struc_id(Event.encode(self.sname))
     sptr = ida_struct.get_struc(struc)
     ida_struct.set_member_type(sptr, self.soff, self.flag, mt,
                                self.eoff - self.soff)
예제 #2
0
 def __call__(self):
     mt = ida_nalt.opinfo_t()
     if ida_bytes.is_struct(self.flag):
         mt.tid = self.extra["id"]
     if ida_bytes.is_off0(self.flag) or ida_bytes.is_off1(self.flag):
         mt.ri = ida_nalt.refinfo_t(
             self.extra["flags"],
             self.extra["base"],
             self.extra["target"],
             self.extra["tdelta"],
         )
     if ida_bytes.is_strlit(self.flag):
         mt.strtype = self.extra["strtype"]
     struc = ida_struct.get_struc_id(Event.encode(self.sname))
     sptr = ida_struct.get_struc(struc)
     ida_struct.set_member_type(sptr, self.soff, self.flag, mt,
                                self.eoff - self.soff)
예제 #3
0
 def implement(self):
     id_of_struct = ida_struct.get_struc_id(str(self._id))
     sturct_obj = ida_struct.get_struc(long(id_of_struct))
     flags = 0
     size = 0
     if self._value == "db":
         flags = ida_bytes.FF_BYTE
         size = 1
     elif self._value == "dw":
         flags = ida_bytes.FF_WORD
         size = 2
     elif self._value == "dd":
         flags = ida_bytes.FF_DWORD
         size = 4
     elif self._value == "dq":
         flags = ida_bytes.QWORD
         size = 8
     ida_struct.set_member_type(sturct_obj, int(self._offset), flags,
                                ida_nalt.opinfo_t(), size)