本文整理汇总了Python中idaapi.attach_action_to_menu方法的典型用法代码示例。如果您正苦于以下问题:Python idaapi.attach_action_to_menu方法的具体用法?Python idaapi.attach_action_to_menu怎么用?Python idaapi.attach_action_to_menu使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类idaapi
的用法示例。
在下文中一共展示了idaapi.attach_action_to_menu方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: registerAction
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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
示例2: register_munu_actions
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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)
示例3: registerAction
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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
示例4: add_menus
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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
)
示例5: add_menu_item_helper
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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)
示例6: init
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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
示例7: init
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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
示例8: init
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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
示例9: _install_load_file
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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")
示例10: _install_load_batch
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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")
示例11: _install_open_coverage_overview
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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")
示例12: attach_to_menu
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
def attach_to_menu(self, menu):
assert hasattr(self, "name")
idaapi.attach_action_to_menu(menu, self.name, idaapi.SETMENU_APP)
示例13: _attach_to_menu_items
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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
示例14: init
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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
示例15: init_menu
# 需要导入模块: import idaapi [as 别名]
# 或者: from idaapi import attach_action_to_menu [as 别名]
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)