def __call__(self):
     numforms = ida_hexrays.user_numforms_new()
     for _ol, _nf in self.numforms:
         ol = ida_hexrays.operand_locator_t(_ol['ea'], _ol['opnum'])
         nf = ida_hexrays.number_format_t()
         nf.flags = _nf['flags']
         nf.opnum = Event.encode(_nf['opnum'])
         nf.props = Event.encode(_nf['props'])
         nf.serial = _nf['serial']
         nf.org_nbytes = Event.encode(_nf['org_nbytes'])
         nf.type_name = Event.encode(_nf['type_name'])
         ida_hexrays.user_numforms_insert(numforms, ol, nf)
     ida_hexrays.save_user_numforms(self.ea, numforms)
     HexRaysEvent.refresh_pseudocode_view()
Exemple #2
0
 def _get_user_numforms(ea):
     user_numforms = ida_hexrays.restore_user_numforms(ea)
     if user_numforms is None:
         user_numforms = ida_hexrays.user_numforms_new()
     numforms = []
     it = ida_hexrays.user_numforms_begin(user_numforms)
     while it != ida_hexrays.user_numforms_end(user_numforms):
         ol = ida_hexrays.user_numforms_first(it)
         nf = ida_hexrays.user_numforms_second(it)
         numforms.append((HexRaysHooks._get_operand_locator(ol),
                          HexRaysHooks._get_number_format(nf)))
         it = ida_hexrays.user_numforms_next(it)
     ida_hexrays.user_numforms_free(user_numforms)
     return numforms
Exemple #3
0
 def __call__(self):
     numforms = ida_hexrays.user_numforms_new()
     for _ol, _nf in self.numforms:
         ol = ida_hexrays.operand_locator_t(_ol["ea"], _ol["opnum"])
         nf = ida_hexrays.number_format_t()
         nf.flags = _nf["flags"]
         nf.opnum = _nf["opnum"]
         nf.props = _nf["props"]
         nf.serial = _nf["serial"]
         nf.org_nbytes = _nf["org_nbytes"]
         nf.type_name = _nf["type_name"]
         ida_hexrays.user_numforms_insert(numforms, ol, nf)
     ida_hexrays.save_user_numforms(self.ea, numforms)
     HexRaysEvent.refresh_pseudocode_view(self.ea)