Python idaapi.attach_action_to_popup() Examples
The following are 18
code examples of idaapi.attach_action_to_popup().
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: actions.py From deREferencing with GNU General Public License v3.0 | 6 votes |
def register_menu_actions(form): widget = form.GetWidget() for action in form.menu_actions: act_name = action.name if act_name != '-': act_name = "%s:%s" % (PLUGIN_NAME, action.name) idaapi.register_action( idaapi.action_desc_t( act_name, action.title, ActionHandler(form, action), action.shortcut, action.tooltip, action.icon ) ) if action.checkable is not None: idaapi.update_action_checkable(act_name, True) idaapi.update_action_checked(act_name, action.checkable) idaapi.attach_action_to_popup(widget, None, act_name) # -----------------------------------------------------------------------
Example #2
Source File: ida_integration.py From lighthouse with MIT License | 6 votes |
def _inject_ctx_actions(self, view, popup, view_type): """ Inject context menu entries into IDA's right click menus. NOTE: This is only being used for coverage xref at this time, but may host additional actions in the future. """ if view_type == idaapi.BWN_DISASMS: idaapi.attach_action_to_popup( view, popup, self.ACTION_COVERAGE_XREF, # The action ID (see above) "Xrefs graph from...", # Relative path of where to add the action idaapi.SETMENU_APP # We want to append the action after ^ )
Example #3
Source File: LazyIDA.py From LazyIDA with MIT License | 6 votes |
def callback(self, event, *args): if event == idaapi.hxe_populating_popup: form, phandle, vu = args if vu.item.citype == idaapi.VDI_FUNC or (vu.item.citype == idaapi.VDI_EXPR and vu.item.e.is_expr() and vu.item.e.type.is_funcptr()): idaapi.attach_action_to_popup(form, phandle, ACTION_HX_REMOVERETTYPE, None) elif event == idaapi.hxe_double_click: vu, shift_state = args # auto jump to target if clicked item is xxx->func(); if vu.item.citype == idaapi.VDI_EXPR and vu.item.e.is_expr(): expr = idaapi.tag_remove(vu.item.e.print1(None)) if "->" in expr: # find target function name = expr.split("->")[-1] addr = idc.get_name_ea_simple(name) if addr == idaapi.BADADDR: # try class::function e = vu.item.e while e.x: e = e.x addr = idc.get_name_ea_simple("%s::%s" % (str(e.type).split()[0], name)) if addr != idaapi.BADADDR: idc.jumpto(addr) return 1 return 0
Example #4
Source File: stack_strings_helper.py From flare-ida with Apache License 2.0 | 5 votes |
def cb(event, *args): if event == ida_hexrays.hxe_populating_popup: widget, phandle, vu = args res = idaapi.attach_action_to_popup(vu.ct, None, ACTION_NAME) return 0
Example #5
Source File: main_gui.py From IDAngr with BSD 2-Clause "Simplified" License | 5 votes |
def finish_populating_tform_popup(form, popup): idaapi.attach_action_to_popup(form, popup, "Find", "IDAngr/") idaapi.attach_action_to_popup(form, popup, "Avoid", "IDAngr/") idaapi.attach_action_to_popup(form, popup, "Symbolic", "IDAngr/")
Example #6
Source File: ghida.py From GhIDA with Apache License 2.0 | 5 votes |
def finish_populating_tform_popup(self, form, popup): # TODO - Attach to the functions view. # if idaapi.get_tform_type(form) == idaapi.BWN_FUNCS: # idaapi.attach_action_to_popup( # form, popup, "my:disasmsaction", None) # Attach to the disassembler view only if idaapi.get_tform_type(form) == idaapi.BWN_DISASMS: idaapi.attach_action_to_popup( form, popup, "my:disasmsaction", None) idaapi.attach_action_to_popup( form, popup, "my:disasmtracker", None) idaapi.attach_action_to_popup( form, popup, "my:invalidatecache", None)
Example #7
Source File: lca.py From Sark with MIT License | 5 votes |
def _attach_to_popup(self, action_name): idaapi.attach_action_to_popup(self.GetTCustomControl(), None, action_name)
Example #8
Source File: lca.py From Sark with MIT License | 5 votes |
def idaview_hooks(idaview_handler): class Hooks(idaapi.UI_Hooks): def finish_populating_widget_popup(self, form, popup): if idaapi.get_widget_type(form) == idaapi.BWN_DISASM: idaapi.attach_action_to_popup(form, popup, idaview_handler.get_name(), "") return Hooks
Example #9
Source File: xrefsgraph.py From Sark with MIT License | 5 votes |
def finish_populating_widget_popup(self, form, popup): # Or here, after the popup is done being populated by its owner. if idaapi.get_widget_type(form) == idaapi.BWN_DISASM: idaapi.attach_action_to_popup(form, popup, ShowXrefsGraphFrom.get_name(), '') idaapi.attach_action_to_popup(form, popup, ShowXrefsGraphTo.get_name(), '')
Example #10
Source File: function_flow.py From Sark with MIT License | 5 votes |
def finish_populating_widget_popup(self, form, popup): # Or here, after the popup is done being populated by its owner. if idaapi.get_widget_type(form) == idaapi.BWN_DISASM: idaapi.attach_action_to_popup(form, popup, MarkReachableNodesHandler.get_name(), "Mark/") idaapi.attach_action_to_popup(form, popup, MarkUnReachableNodesHandler.get_name(), "Mark/") idaapi.attach_action_to_popup(form, popup, MarkReachingNodesHandler.get_name(), "Mark/") idaapi.attach_action_to_popup(form, popup, MarkNotReachingNodesHandler.get_name(), "Mark/") idaapi.attach_action_to_popup(form, popup, MarkExits.get_name(), "Mark/") idaapi.attach_action_to_popup(form, popup, MarkClearHandler.get_name(), "Mark/")
Example #11
Source File: plugin_loader.py From vt-ida-plugin with Apache License 2.0 | 5 votes |
def finish_populating_widget_popup(form, popup): if idaapi.get_widget_type(form) == idaapi.BWN_DISASM: idaapi.attach_action_to_popup( form, popup, VTGrepBytes.get_name(), 'VirusTotal/' ) idaapi.attach_action_to_popup( form, popup, VTGrepWildcards.get_name(), 'VirusTotal/', ) idaapi.attach_action_to_popup( form, popup, VTGrepWildCardsStrict.get_name(), 'VirusTotal/', ) idaapi.attach_action_to_popup( form, popup, VTGrepWildCardsFunction.get_name(), 'VirusTotal/', ) elif idaapi.get_widget_type(form) == idaapi.BWN_STRINGS: idaapi.attach_action_to_popup( form, popup, VTGrepStrings.get_name(), 'VirusTotal/')
Example #12
Source File: symbol_exec.py From miasm with GNU General Public License v2.0 | 5 votes |
def finish_populating_widget_popup(self, form, popup): idaapi.attach_action_to_popup(form, popup, 'my:expand', None) idaapi.attach_action_to_popup(form, popup, 'my:translate', None)
Example #13
Source File: mkyara_plugin.py From mkYARA with GNU General Public License v3.0 | 5 votes |
def finish_populating_widget_popup(self, form, popup): idaapi.attach_action_to_popup(form, popup, "mkYARA:generate_loose_yara", "mkYARA/") idaapi.attach_action_to_popup(form, popup, "mkYARA:generate_normal_yara", "mkYARA/") idaapi.attach_action_to_popup(form, popup, "mkYARA:generate_strict_yara", "mkYARA/") idaapi.attach_action_to_popup(form, popup, "mkYARA:generate_data_yara", "mkYARA/")
Example #14
Source File: LazyIDA.py From LazyIDA with MIT License | 5 votes |
def finish_populating_widget_popup(self, form, popup): form_type = idaapi.get_widget_type(form) if form_type == idaapi.BWN_DISASM or form_type == idaapi.BWN_DUMP: t0, t1, view = idaapi.twinpos_t(), idaapi.twinpos_t(), idaapi.get_current_viewer() if idaapi.read_selection(view, t0, t1) or idc.get_item_size(idc.get_screen_ea()) > 1: idaapi.attach_action_to_popup(form, popup, ACTION_XORDATA, None) idaapi.attach_action_to_popup(form, popup, ACTION_FILLNOP, None) for action in ACTION_CONVERT: idaapi.attach_action_to_popup(form, popup, action, "Convert/") if form_type == idaapi.BWN_DISASM and (ARCH, BITS) in [(idaapi.PLFM_386, 32), (idaapi.PLFM_386, 64), (idaapi.PLFM_ARM, 32),]: idaapi.attach_action_to_popup(form, popup, ACTION_SCANVUL, None)
Example #15
Source File: util.py From WatchDBG-IDA with MIT License | 5 votes |
def finish_populating_tform_popup(self, form, popup): #formtype = idaapi.get_tform_type(form) #if formtype == idaapi.BWN_DISASM or idaapi.BWN_DUMP: for action, position, condition in self.popups: if condition(form): idaapi.attach_action_to_popup(form, popup, action, position)
Example #16
Source File: ida_prefix.py From prefix with MIT License | 4 votes |
def hxe_callback(self, event, *args): """ HexRays event callback. We lump this under the (UI) Hooks class for organizational reasons. """ # # if the event callback indicates that this is a popup menu event # (in the hexrays window), we may want to install our prefix menu # actions depending on what the cursor right clicked. # if event == idaapi.hxe_populating_popup: form, popup, vu = args # # if the user cursor isn't hovering over a function ref, there # is nothing for us to do # if get_cursor_func_ref() == idaapi.BADADDR: return 0 # # the user cursor is hovering over a valid target for a recursive # function prefix. insert the prefix action entry into the menu # idaapi.attach_action_to_popup( form, popup, prefix_t.ACTION_RECURSIVE, "Rename global item", idaapi.SETMENU_APP ) # done return 0 #------------------------------------------------------------------------------ # Prefix Wrappers #------------------------------------------------------------------------------
Example #17
Source File: PatternGenerationWidget.py From grap with MIT License | 4 votes |
def finish_populating_widget_popup(self, form, popup): try: b = idaapi.get_widget_type(form) == idaapi.BWN_DISASM except: b = idaapi.get_tform_type(form) == idaapi.BWN_DISASM if b: # Add separator idaapi.attach_action_to_popup(form, popup, None, None) # Add actions try: currentAddress = idc.get_screen_ea() except: currentAddress = idc.ScreenEA() #if currentAddress in [node.node_id for node in self.cc.PatternGenerator.targetNodes]: if currentAddress in self.cc.PatternGenerator.coloredNodes: idaapi.attach_action_to_popup(form, popup, "grap:pg:match_default", None) idaapi.attach_action_to_popup(form, popup, "grap:pg:match_full", None) idaapi.update_action_label("grap:pg:match_full", self.cc.PatternGenerator.preview_match(currentAddress, "[grap] Full match", "match_full")) idaapi.attach_action_to_popup(form, popup, "grap:pg:match_opcode_arg1", None) idaapi.update_action_label("grap:pg:match_opcode_arg1", self.cc.PatternGenerator.preview_match(currentAddress, "[grap] Opcode+arg1", "match_opcode_arg1")) idaapi.attach_action_to_popup(form, popup, "grap:pg:match_opcode_arg2", None) idaapi.update_action_label("grap:pg:match_opcode_arg2", self.cc.PatternGenerator.preview_match(currentAddress, "[grap] Opcode+arg2", "match_opcode_arg2")) idaapi.attach_action_to_popup(form, popup, "grap:pg:match_opcode_arg3", None) idaapi.update_action_label("grap:pg:match_opcode_arg3", self.cc.PatternGenerator.preview_match(currentAddress, "[grap] Opcode+arg3", "match_opcode_arg3")) idaapi.attach_action_to_popup(form, popup, "grap:pg:match_opcode", None) idaapi.update_action_label("grap:pg:match_opcode", self.cc.PatternGenerator.preview_match(currentAddress, "[grap] Opcode", "match_opcode")) idaapi.attach_action_to_popup(form, popup, "grap:pg:match_wildcard", None) idaapi.attach_action_to_popup(form, popup, "grap:pg:remove_target", None) for type in ["match_default", "match_full", "match_opcode_arg1", "match_opcode_arg2", "match_opcode_arg3", "match_opcode", "match_wildcard"]: idaapi.update_action_icon("grap:pg:"+type, -1) if currentAddress not in self.cc.PatternGenerator.targetNodeType: type = "match_default" else: type = self.cc.PatternGenerator.targetNodeType[currentAddress] idaapi.update_action_icon("grap:pg:"+type, self.selected_icon_number) elif self.cc.PatternGenerator.rootNode is None or currentAddress != self.cc.PatternGenerator.rootNode.node_id: idaapi.attach_action_to_popup(form, popup, "grap:pg:set_root", None) idaapi.attach_action_to_popup(form, popup, "grap:pg:add_target", None)
Example #18
Source File: create_tab_table.py From win_driver_plugin with BSD 3-Clause "New" or "Revised" License | 4 votes |
def create_ioctl_tab(tracker, modal=False): global ioctl_tracker ioctl_tracker = tracker items = get_all_defines() idaapi.register_action( idaapi.action_desc_t( "choose2:remove_ioctl", "Invalid IOCTL", remove_ioctl(items) ) ) action = "send_ioctl" actname = "choose2:act%s" % action idaapi.register_action( idaapi.action_desc_t( actname, "Send IOCTL", send_ioctl_handler_t(items))) idaapi.register_action( idaapi.action_desc_t( "choose2:actcopy_defines", "Copy All Defines", copy_defines_handler_t(items))) idaapi.register_action( idaapi.action_desc_t( "choose2:actstop_unload", "Stop & Unload Driver", stop_unload_handler_t())) idaapi.register_action( idaapi.action_desc_t( "choose2:actstart_load", "Load & Start Driver", start_load_handler_t())) global c c = MyChoose2("IOCTL Code Viewer", items, modal=modal) c.show() form = idaapi.get_current_tform() idaapi.attach_action_to_popup(form, None, "choose2:act%s" % action) idaapi.attach_action_to_popup(form, None, "choose2:actcopy_defines") idaapi.attach_action_to_popup(form, None, "choose2:actstop_unload") idaapi.attach_action_to_popup(form, None, "choose2:actstart_load") idaapi.attach_action_to_popup(form, None, "choose2:remove_ioctl")