Python idaapi.attach_action_to_menu() Examples
The following are 21
code examples of idaapi.attach_action_to_menu().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
idaapi
, or try the search function
.
Example #1
Source File: dereferencing.py From deREferencing with GNU General Public License v3.0 | 6 votes |
def register_munu_actions(): act_registers = '%s:registers' % PLUGIN_NAME act1 = idaapi.action_desc_t( act_registers, REGS_WIDGET_TITLE, StartHandler(REGS_WIDGET_TITLE), 'Alt-Shift-D', 'Start plugin', 122 ) idaapi.register_action(act1) idaapi.attach_action_to_menu(DBG_MENU_PATH, act_registers, idaapi.SETMENU_APP) act_stack = '%s:stack' % PLUGIN_NAME act2 = idaapi.action_desc_t(act_stack, STACK_WIDGET_TITLE, StartHandler(STACK_WIDGET_TITLE), 'Alt-Shift-E', 'Start plugin', 122 ) idaapi.register_action(act2) idaapi.attach_action_to_menu(DBG_MENU_PATH, act_stack, idaapi.SETMENU_APP)
Example #2
Source File: neo4ida.py From ida-scripts with The Unlicense | 6 votes |
def registerAction(self): action_desc = idaapi.action_desc_t( self.id, self.name, self, "", self.tooltip, self.icon ) if not idaapi.register_action(action_desc): return False if not idaapi.attach_action_to_menu(self.menuPath, self.id, 0): return False if not idaapi.attach_action_to_toolbar("AnalysisToolBar", self.id): return False return True
Example #3
Source File: menu.py From miasm with GNU General Public License v2.0 | 5 votes |
def attach_to_menu(self, menu): assert hasattr(self, "name") idaapi.attach_action_to_menu(menu, self.name, idaapi.SETMENU_APP)
Example #4
Source File: apply_callee_type_plugin.py From flare-ida with Apache License 2.0 | 5 votes |
def installMenuIda7(): class ApplyCalleeHandler(idaapi.action_handler_t): def activate(self, ctx): doApplyCallee() return 1 def update(self, ctx): return idaapi.AST_ENABLE_FOR_WIDGET if ctx.widget_type == idaapi.BWN_DISASM else idaapi.AST_DISABLE_FOR_WIDGET ret = idaapi.register_action(idaapi.action_desc_t( ACTION_NAME, # Name. Acts as an ID. Must be unique. PLUGIN_NAME, # Label. That's what users see. ApplyCalleeHandler(), # Handler. Called when activated, and for updating PREFERRED_SHORTCUT, # Shortcut (optional) PLUGIN_COMMENT # Tooltip (optional) )) if not ret: print('Failed to register action. Bailing out') return # Insert the action in the menu if idaapi.attach_action_to_menu(MENU_PATH, ACTION_NAME, idaapi.SETMENU_APP): print("Attached to menu.") else: print("Failed attaching to menu.") setattr(sys.modules['idaapi'], '_apply_callee_type_plugin_installFlag', True)
Example #5
Source File: findcrypt3.py From findcrypt-yara with BSD 3-Clause "New" or "Revised" License | 5 votes |
def init(self): global p_initialized # register popup menu handlers try: Searcher.register(self, "Findcrypt") except: pass if p_initialized is False: p_initialized = True self.user_directory = self.get_user_directory() idaapi.register_action(idaapi.action_desc_t( "Findcrypt", "Find crypto constants", Searcher(), None, None, 0)) idaapi.attach_action_to_menu("Search", "Findcrypt", idaapi.SETMENU_APP) print("=" * 80) print("Findcrypt v{0} by David BERARD, 2017".format(VERSION)) print("Findcrypt search shortcut key is Ctrl-Alt-F") print("Global rules in %s" % YARARULES_CFGFILE) print("User-defined rules in %s/*.rules" % self.user_directory) print("=" * 80) return idaapi.PLUGIN_KEEP
Example #6
Source File: vxhunter_ida.py From vxhunter with BSD 2-Clause "Simplified" License | 5 votes |
def init(self): # register popup menu handlers try: # Register Auto Fix IDB handler VxHunterMCFixIDB.register(self, "Auto Fix IDB With symbol table") # Register Fix Code handler VxHunterMCFixCode.register(self, "Fix Code from start address to end address") # Register Fix Ascii handler VxHunterMCFixAscii.register(self, "Fix Ascii string table with giving address") # Register Load symbol file handler VxHunterMCLoadSymbolFile.register(self, "Load VxWorks symbol file") except Exception as err: print("Got Error!!!: %s" % err) # setup popup menu if idaapi.IDA_SDK_VERSION >= 700: # Add menu IDA >= 7.0 idaapi.attach_action_to_menu("Edit/VxHunter/", VxHunterMCFixIDB.get_name(), idaapi.SETMENU_APP) idaapi.attach_action_to_menu("Edit/VxHunter/", VxHunterMCFixCode.get_name(), idaapi.SETMENU_APP) idaapi.attach_action_to_menu("Edit/VxHunter/", VxHunterMCFixAscii.get_name(), idaapi.SETMENU_APP) idaapi.attach_action_to_menu("Edit/VxHunter/", VxHunterMCLoadSymbolFile.get_name(), idaapi.SETMENU_APP) else: # add Vxhunter menu menu = idaapi.add_menu_item("Edit/VxHunter/", "Auto Fix IDB1", "", 1, self.handler_auto_fix_idb, None) if menu is not None: pass print("=" * 80) return idaapi.PLUGIN_KEEP
Example #7
Source File: Stingray.py From Stingray with GNU General Public License v3.0 | 5 votes |
def init(): NO_HOTKEY = "" SETMENU_INS = 0 NO_ARGS = tuple() config_action_text = "{} Config".format(ConfigStingray.PLUGIN_NAME) idaapi.register_action(idaapi.action_desc_t(ConfigStingray.ACTION_NAME, config_action_text, ConfigStingray())) idaapi.attach_action_to_menu("Options/", ConfigStingray.ACTION_NAME, idaapi.SETMENU_APP) ConfigStingray.load()
Example #8
Source File: plugin.py From WatchDBG-IDA with MIT License | 5 votes |
def init(self): self.view = None # create watcher self.watch = Watcher() # setup actions self.actions = ActionManager() self.actions.register("addmenuwindow", "Add Watch", self.addWatchWindow, -1, "Shift-A") self.actions.register("showview", "Show WatchDbg List", self.showWatchWindow, -1, "Shift-W") # setup menus idaapi.attach_action_to_menu('Debugger/WatchDbg', self.actions.get("showview"), idaapi.SETMENU_APP) self.uihook = UIHook() self.uihook.hook() self.dbghook = WatchDbgHook() self.dbghook.dbg_suspend_process = self.updateWatchWindow self.dbghook.hook() writeline("Successfully loaded! [v.%s]" % '.'.join(map(str,PLUGIN_VERSION))) return idaapi.PLUGIN_KEEP
Example #9
Source File: ui.py From UEFI_RETool with MIT License | 5 votes |
def init_menu(action_handler): action = '{}:loadfile'.format(NAME) action_desc = idaapi.action_desc_t( action, '{}...'.format(NAME), action_handler, 'Ctrl+Alt+J', '{} dependency browser'.format(NAME), ) idaapi.register_action(action_desc) idaapi.attach_action_to_menu('File', action, idaapi.SETMENU_APP)
Example #10
Source File: ida_batch_decompile.py From ida-batch_decompile with GNU General Public License v3.0 | 5 votes |
def init(self): NO_HOTKEY = "" SETMENU_INS = 0 NO_ARGS = tuple() logger.debug("[+] %s.init()" % self.__class__.__name__) self.menuitems = [] logger.debug("[+] setting up menus for ida version %s" % idaapi.IDA_SDK_VERSION) if idaapi.IDA_SDK_VERSION >= 700: # >= 700 action_desc = idaapi.action_desc_t("tintinweb:batchdecompile:load", self.wanted_name, IdaDecompileUiActionHandler(self)) idaapi.register_action(action_desc) idaapi.attach_action_to_menu(''.join(self.wanted_menu), "tintinweb:batchdecompile:load", idaapi.SETMENU_APP) else: menu = idaapi.add_menu_item(self.wanted_menu[0], self.wanted_menu[1], NO_HOTKEY, SETMENU_INS, self.menu_config, NO_ARGS) self.menuitems.append(menu) return idaapi.PLUGIN_KEEP
Example #11
Source File: idamagnum_plugin.py From idamagnum with MIT License | 5 votes |
def _attach_to_menu_items(self): self.search_magic_desc = idaapi.action_desc_t( 'idamagnum:searchmagic', 'search magic number ...', SearchMagicNumber(self), "Shift+M", 'Search this value on MagnumDB', ) self.configure_plugin_desc = idaapi.action_desc_t( 'idamagnum:configure', 'Configure', ConfigureIdaMagnum(self), "", 'Configure plugin', ) idaapi.register_action(self.search_magic_desc) idaapi.register_action(self.configure_plugin_desc) idaapi.attach_action_to_menu( 'Edit/Plugins/IdaMagnum/', 'idamagnum:searchmagic', idaapi.SETMENU_APP ) idaapi.attach_action_to_menu( 'Edit/Plugins/IdaMagnum/', 'idamagnum:configure', idaapi.SETMENU_APP ) return 0
Example #12
Source File: win_driver_plugin.py From win_driver_plugin with BSD 3-Clause "New" or "Revised" License | 5 votes |
def registerAction(self): action_desc = idaapi.action_desc_t( self.id, self.name, self, self.shortcut, self.tooltip, 0 ) if not idaapi.register_action(action_desc): return False if not idaapi.attach_action_to_menu(self.menuPath, self.id, 0): return False return True
Example #13
Source File: ida_integration.py From lighthouse with MIT License | 5 votes |
def _install_open_coverage_overview(self): """ Install the 'View->Open subviews->Coverage Overview' menu entry. """ # create a custom IDA icon icon_path = plugin_resource(os.path.join("icons", "overview.png")) icon_data = open(icon_path, "rb").read() self._icon_id_overview = idaapi.load_custom_icon(data=icon_data) # describe a custom IDA UI action action_desc = idaapi.action_desc_t( self.ACTION_COVERAGE_OVERVIEW, # The action name "~C~overage Overview", # The action text IDACtxEntry(self.open_coverage_overview), # The action handler None, # Optional: action shortcut "Open database code coverage overview", # Optional: tooltip self._icon_id_overview # Optional: the action icon ) # register the action with IDA result = idaapi.register_action(action_desc) if not result: RuntimeError("Failed to register open coverage overview action with IDA") # attach the action to the View-> dropdown menu result = idaapi.attach_action_to_menu( "View/Open subviews/Hex dump", # Relative path of where to add the action self.ACTION_COVERAGE_OVERVIEW, # The action ID (see above) idaapi.SETMENU_INS # We want to insert the action before ^ ) if not result: RuntimeError("Failed action attach to 'View/Open subviews' dropdown") logger.info("Installed the 'Coverage Overview' menu entry")
Example #14
Source File: ida_integration.py From lighthouse with MIT License | 5 votes |
def _install_load_batch(self): """ Install the 'File->Load->Code coverage batch...' menu entry. """ # create a custom IDA icon icon_path = plugin_resource(os.path.join("icons", "batch.png")) icon_data = open(icon_path, "rb").read() self._icon_id_batch = idaapi.load_custom_icon(data=icon_data) # describe a custom IDA UI action action_desc = idaapi.action_desc_t( self.ACTION_LOAD_BATCH, # The action name "~C~ode coverage batch...", # The action text IDACtxEntry(self.interactive_load_batch), # The action handler None, # Optional: action shortcut "Load and aggregate code coverage files", # Optional: tooltip self._icon_id_batch # Optional: the action icon ) # register the action with IDA result = idaapi.register_action(action_desc) if not result: RuntimeError("Failed to register load_batch action with IDA") # attach the action to the File-> dropdown menu result = idaapi.attach_action_to_menu( "File/Load file/", # Relative path of where to add the action self.ACTION_LOAD_BATCH, # The action ID (see above) idaapi.SETMENU_APP # We want to append the action after ^ ) if not result: RuntimeError("Failed action attach load_batch") logger.info("Installed the 'Code coverage batch' menu entry")
Example #15
Source File: ida_integration.py From lighthouse with MIT License | 5 votes |
def _install_load_file(self): """ Install the 'File->Load->Code coverage file...' menu entry. """ # create a custom IDA icon icon_path = plugin_resource(os.path.join("icons", "load.png")) icon_data = open(icon_path, "rb").read() self._icon_id_file = idaapi.load_custom_icon(data=icon_data) # describe a custom IDA UI action action_desc = idaapi.action_desc_t( self.ACTION_LOAD_FILE, # The action name "~C~ode coverage file...", # The action text IDACtxEntry(self.interactive_load_file), # The action handler None, # Optional: action shortcut "Load individual code coverage file(s)", # Optional: tooltip self._icon_id_file # Optional: the action icon ) # register the action with IDA result = idaapi.register_action(action_desc) if not result: RuntimeError("Failed to register load_file action with IDA") # attach the action to the File-> dropdown menu result = idaapi.attach_action_to_menu( "File/Load file/", # Relative path of where to add the action self.ACTION_LOAD_FILE, # The action ID (see above) idaapi.SETMENU_APP # We want to append the action after ^ ) if not result: RuntimeError("Failed action attach load_file") logger.info("Installed the 'Code coverage file' menu entry")
Example #16
Source File: highlight_calls.py From Sark with MIT License | 5 votes |
def init(self): self.lines = set() self.settings = IDASettings('HighlightCalls') try: self.set_color(self.settings['color']) except KeyError: self.settings.user['color'] = HIGHLIGHT_COLOR self.set_color(HIGHLIGHT_COLOR) self.ui_hooks = UiHooks(self.lines) self.toggle_action_desc = idaapi.action_desc_t('HighlightCalls:Toggle', 'Toggle call highlighting', ToggleHighlightHandler(self.enable_highlights, self.disable_highlights), '', 'Toggle call highlighting', -1) idaapi.register_action(self.toggle_action_desc) self.color_selector = idaapi.action_desc_t('HighlightCalls:SelectColor', 'Select highlight color', SelectColorHandler(set_color=self.set_color), '', 'Select highlight color', -1) idaapi.register_action(self.color_selector) idaapi.attach_action_to_menu('View/', self.toggle_action_desc.name, idaapi.SETMENU_APP) idaapi.attach_action_to_menu('View/', self.color_selector.name, idaapi.SETMENU_APP) return idaapi.PLUGIN_KEEP
Example #17
Source File: xrefsgraph.py From Sark with MIT License | 5 votes |
def init(self): ShowXrefsGraphTo.register() ShowXrefsGraphFrom.register() idaapi.attach_action_to_menu(MENU_PATH_GRAPHS, ShowXrefsGraphTo.get_name(), 0) idaapi.attach_action_to_menu(MENU_PATH_GRAPHS, ShowXrefsGraphFrom.get_name(), 0) self.hooks = Hooks() self.hooks.hook() return idaapi.PLUGIN_KEEP
Example #18
Source File: lca.py From Sark with MIT License | 5 votes |
def init(self): self._lca_viewer = None self._lca_starter = lca_viewer_starter(self) self._lca_starter.register() idaapi.attach_action_to_menu("View/Graph Overview", self._lca_starter.get_name(), idaapi.SETMENU_APP) self._idaview_handler = idaview_add_target_handler(self) self._idaview_handler.register() self._hooks = idaview_hooks(self._idaview_handler)() self._hooks.hook() return idaapi.PLUGIN_KEEP
Example #19
Source File: DIE.py From DIE with MIT License | 5 votes |
def add_menu_item_helper(self, name, text, tooltip, handler, icon, shortcut): description = idaapi.action_desc_t(name, text, handler, shortcut, tooltip, icon) idaapi.register_action(description) idaapi.attach_action_to_menu("DIE/" + text, name, idaapi.SETMENU_APP) self._menus_names.append(name)
Example #20
Source File: heap_viewer.py From heap-viewer with GNU General Public License v3.0 | 5 votes |
def add_menus(self): # To avoid creating multiple plugin_t instances this = self class StartHandler(idaapi.action_handler_t): def __init__(self): idaapi.action_handler_t.__init__(self) def activate(self, ctx): this.run() return 1 def update(self, ctx): return idaapi.AST_ENABLE_ALWAYS act_name = '%s:start' % PLUGNAME act_desc = idaapi.action_desc_t( act_name, # The action name. Must be unique PLUGNAME, # Action Text StartHandler(), # Action handler None, # Optional shortcut 'Start plugin', # Action tooltip 122 # Icon ) idaapi.register_action(act_desc) idaapi.attach_action_to_menu( 'Debugger/Debugger windows/', act_name, idaapi.SETMENU_APP )
Example #21
Source File: x64dbgida.py From x64dbgida with MIT License | 4 votes |
def init(self): global initialized if initialized is False: initialized = True if idaapi.IDA_SDK_VERSION >= 700: # populating action menus action_desc = idaapi.action_desc_t( 'my:aboutaction', # The action name. This acts like an ID and must be unique 'About!', # The action text. AboutHandler(), # The action handler. '', # Optional: the action shortcut 'About X64dbg ida', # Optional: the action tooltip (available in menus/toolbar) ) # Optional: the action icon (shows when in menus/toolbars) use numbers 1-255 # Register the action idaapi.register_action(action_desc) idaapi.attach_action_to_menu( 'Edit/x64dbgida/', 'my:aboutaction', idaapi.SETMENU_APP) action_desc = idaapi.action_desc_t( 'my:eksportaction', 'Export x64dbg database', EksportHandler(), '', 'Export x64dbg database', ) # Register the action idaapi.register_action(action_desc) idaapi.attach_action_to_menu( 'Edit/x64dbgida/', 'my:eksportaction', idaapi.SETMENU_APP) action_desc = idaapi.action_desc_t( 'my:importaction', 'Import (uncompressed) database', ImportHandler(), '', 'Import (uncompressed) database', ) # Register the action idaapi.register_action(action_desc) idaapi.attach_action_to_menu( 'Edit/x64dbgida/', 'my:importaction', idaapi.SETMENU_APP) else: print("Use version 1.0") return idaapi.PLUGIN_KEEP