Exemplo n.º 1
0
    def __call__(self):
        if len(self.lvar_settings) == 0:
            return

        lvinf = ida_hexrays.lvar_uservec_t()
        lvinf.lvvec = ida_hexrays.lvar_saved_infos_t()
        if "lvvec" in self.lvar_settings:
            for lv in self.lvar_settings["lvvec"]:
                lvinf.lvvec.push_back(
                    UserLvarSettingsEvent._get_lvar_saved_info(lv))
        lvinf.sizes = ida_pro.intvec_t()
        if "sizes" in self.lvar_settings:
            for i in self.lvar_settings["sizes"]:
                lvinf.sizes.push_back(i)
        lvinf.lmaps = ida_hexrays.lvar_mapping_t()
        if "lmaps" in self.lvar_settings:
            for key, val in self.lvar_settings["lmaps"]:
                key = UserLvarSettingsEvent._get_lvar_locator(key)
                val = UserLvarSettingsEvent._get_lvar_locator(val)
                ida_hexrays.lvar_mapping_insert(lvinf.lmaps, key, val)
        if "stkoff_delta" in self.lvar_settings:
            lvinf.stkoff_delta = self.lvar_settings["stkoff_delta"]
        if "ulv_flags" in self.lvar_settings:
            lvinf.ulv_flags = self.lvar_settings["ulv_flags"]
        ida_hexrays.save_user_lvar_settings(self.ea, lvinf)
        HexRaysEvent.refresh_pseudocode_view(self.ea)
Exemplo n.º 2
0
 def __call__(self):
     lvinf = idaapi.lvar_uservec_t()
     lvinf.lvvec = ida_hexrays.lvar_saved_infos_t()
     for lv in self.lvar_settings['lvvec']:
         lvinf.lvvec.push_back(UserLvarSettingsEvent._getLvarSavedInfo(lv))
     lvinf.sizes = ida_pro.intvec_t()
     for i in self.lvar_settings['sizes']:
         lvinf.sizes.push_back(i)
     lvinf.lmaps = ida_hexrays.lvar_mapping_t()
     for key, val in self.lvar_settings['lmaps'].iteritems():
         key = UserLvarSettingsEvent._getLvarLocator(key)
         val = UserLvarSettingsEvent._getLvarLocator(val)
         idaapi.lvar_mapping_insert(lvinf.lmaps, key, val)
     lvinf.stkoff_delta = self.lvar_settings['stkoff_delta']
     lvinf.ulv_flags = self.lvar_settings['ulv_flags']
     idaapi.save_user_lvar_settings(self.ea, lvinf)
     refreshPseudocodeView()
Exemplo n.º 3
0
 def __call__(self):
     lvinf = ida_hexrays.lvar_uservec_t()
     lvinf.lvvec = ida_hexrays.lvar_saved_infos_t()
     for lv in self.lvar_settings['lvvec']:
         lvinf.lvvec.push_back(
             UserLvarSettingsEvent._get_lvar_saved_info(lv))
     if hasattr(self.lvar_settings, 'sizes'):
         lvinf.sizes = ida_pro.intvec_t()
         for i in self.lvar_settings['sizes']:
             lvinf.sizes.push_back(i)
     lvinf.lmaps = ida_hexrays.lvar_mapping_t()
     for key, val in self.lvar_settings['lmaps']:
         key = UserLvarSettingsEvent._get_lvar_locator(key)
         val = UserLvarSettingsEvent._get_lvar_locator(val)
         ida_hexrays.lvar_mapping_insert(lvinf.lmaps, key, val)
     lvinf.stkoff_delta = self.lvar_settings['stkoff_delta']
     lvinf.ulv_flags = self.lvar_settings['ulv_flags']
     ida_hexrays.save_user_lvar_settings(self.ea, lvinf)
     HexRaysEvent.refresh_pseudocode_view()