Python idaapi.add_menu_item() Examples
The following are 9 code examples for showing how to use idaapi.add_menu_item(). These examples are extracted from open source projects. 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 check out the related API usage on the sidebar.
You may also want to check out all available functions/classes of the module
idaapi
, or try the search function
.
Example 1
Project: IDASynergy Author: CubicaLabs File: IDASynergy.py License: MIT License | 6 votes |
def insert(self, option_groups=[]): if "enable" in option_groups: self.enable_menu_item = idaapi.add_menu_item("FILE/", "Enable IDASynergy for this IDB", "", 0, self.on_enable_plugin, ()) #self.remove_hooks() else: if "svn" in option_groups and self.svn_menuitems == []: self.svn_menuitems.append( idaapi.add_menu_item("FILE/", "IDASynergy SVN Checkout...", "", 0, self.on_checkout, ()) ) self.svn_menuitems.append( idaapi.add_menu_item("FILE/", "IDASynergy SVN Commit...", "CTRL+SHIFT+C", 0, self.on_commit, () )) self.svn_menuitems.append( idaapi.add_menu_item("FILE/", "IDASynergy SVN Update...", "CTRL+SHIFT+U", 0, self.on_update, () )) if "full" in option_groups and self.ex_addmenu_item_ctx == []: self.ex_addmenu_item_ctx.append( idaapi.add_menu_item("Options/", "IDASynergy...", "", 0, self.on_config, ()) ) self.ex_addmenu_item_ctx.append( idaapi.add_menu_item("FILE/", "IDASynergy Load from local repository", "", 0, self.on_import_all, ()) ) self.ex_addmenu_item_ctx.append( idaapi.add_menu_item("FILE/", "IDASynergy Export analysis to file", "", 0, self.on_export, ()) ) self.ex_addmenu_item_ctx.append( idaapi.add_menu_item("FILE/", "IDASynergy Import analysis from file", "", 0, self.on_import, ())) #self.insert_hooks() self.remove(["enable"])
Example 2
Project: flare-ida Author: fireeye File: apply_callee_type_plugin.py License: Apache License 2.0 | 6 votes |
def installMenu(): #hack -> stashing a flag under idaapi to prevent multiple menu items from appearing if hasattr(sys.modules['idaapi'], '_apply_callee_type_plugin_installFlag'): #print('Skipping menu install: already present') return if using_ida7api: return installMenuIda7() global ex_addmenu_item_ctx ex_addmenu_item_ctx = idaapi.add_menu_item( MENU_PATH, PLUGIN_NAME, PREFERRED_SHORTCUT, 0, doApplyCallee, tuple("hello world") ) if ex_addmenu_item_ctx is None: print('Failed to init apply_callee_type_plugin') setattr(sys.modules['idaapi'], '_apply_callee_type_plugin_installFlag', True)
Example 3
Project: maltindex Author: joxeankoret File: diaphora_ida.py License: GNU General Public License v2.0 | 5 votes |
def register_menu(self): global g_bindiff g_bindiff = self idaapi.add_menu_item("Edit/Plugins/", "Diaphora - Show results", "F3", 0, show_choosers, ()) idaapi.add_menu_item("Edit/Plugins/", "Diaphora - Save results", None, 0, save_results, ()) idaapi.add_menu_item("Edit/Plugins/", "Diaphora - Load results", None, 0, load_results, ()) Warning("""AUTOHIDE REGISTRY\nIf you close one tab you can always re-open it by pressing F3 or selecting Edit -> Plugins -> Diaphora - Show results""")
Example 4
Project: ida-batch_decompile Author: tintinweb File: ida_batch_decompile.py License: 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 5
Project: Python_editor Author: techbliss File: Python_editor.py License: The Unlicense | 5 votes |
def AddMenuElements(self): idaapi.add_menu_item("File/", "Code editor", "Alt-E", 0, self.popeye, ()) idaapi.set_menu_item_icon("File/Code editor", idaapi.load_custom_icon(":/ico/python.png"))
Example 6
Project: Python_editor Author: techbliss File: Python_editor.py License: The Unlicense | 5 votes |
def AddMenuElements(self): idaapi.add_menu_item("File/", "Code editor", "Alt-E", 0, self.popeye, ()) idaapi.set_menu_item_icon("File/Code editor", idaapi.load_custom_icon(":/ico/python.png"))
Example 7
Project: ida-minsc Author: arizvisa File: ui.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def add(cls, path, name, callable, hotkey='', flags=0, args=()): '''Register a `callable` as a menu item at the specified `path` with the provided `name`.''' # check to see if our menu item is in our cache and remove it if so if (path, name) in cls.state: cls.rm(path, name) # now we can add the menu item since everything is ok # XXX: I'm not sure if the path needs to be utf8 encoded or not res = internal.utils.string.to(name) ctx = idaapi.add_menu_item(path, res, hotkey, flags, callable, args) cls.state[path, name] = ctx
Example 8
Project: vxhunter Author: PAGalaxyLab File: vxhunter_ida.py License: 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 9
Project: fcatalog_client Author: xorpd File: fcatalog_plugin.py License: GNU General Public License v3.0 | 4 votes |
def init(self): """ Initialize plugin: """ self._client_config = load_config() self._fcc = None if self._client_config is not None: self._fcc = FCatalogClient(\ (self._client_config.remote_host,\ self._client_config.remote_port),\ self._client_config.db_name,\ self._client_config.exclude_pattern) # Make sure that self._client config is built, even if it doesn't have # any fields inside: if self._client_config is None: self._client_config = ClientConfig() # Set up menus: ui_path = "Edit/" self.menu_contexts = [] self.menu_contexts.append(idaapi.add_menu_item(ui_path, "FCatalog: Configure", "", 0, self._show_conf_form, (None,))) self.menu_contexts.append(idaapi.add_menu_item(ui_path, "FCatalog: Commit Functions", "", 0, self._commit_funcs, (None,))) self.menu_contexts.append(idaapi.add_menu_item(ui_path, "FCatalog: Find Similars", "", 0, self._find_similars, (None,))) self.menu_contexts.append(idaapi.add_menu_item(ui_path, "FCatalog: Clean IDB", "", 0, self._clean_idb, (None,))) return idaapi.PLUGIN_KEEP