Module index

Module ida_kernwin

IDA Plugin SDK API wrapper: kernwin

Global variables

var AA_CHECKABLE
AA_CHECKABLE = 6
var AA_CHECKED
AA_CHECKED = 7
var AA_ICON
AA_ICON = 4
var AA_LABEL
AA_LABEL = 1
var AA_NONE
AA_NONE = 0
var AA_SHORTCUT
AA_SHORTCUT = 2
var AA_STATE
AA_STATE = 5
var AA_TOOLTIP
AA_TOOLTIP = 3
var AA_VISIBILITY
AA_VISIBILITY = 8
var ACF_HAS_FIELD_DIRTREE_SELECTION
'cur_enum_member' and 'dirtree_selection' fields are present
var ACF_HAS_SELECTION
there is currently a valid selection
var ACF_HAS_SOURCE
'source' field is present
var ACF_XTRN_EA
cur_ea is in 'externs' segment
var ADF_GLOBAL
Register the action globally, so that it's available even if no IDB is present
var ADF_NO_HIGHLIGHT
After activating, do not update the highlight according to what's under the cursor (listings only.)
var ADF_NO_UNDO
the action does not create an undo point. useful for actions that do not modify the database.
var ADF_OT_MASK
Owner type mask.
var ADF_OT_PLUGIN
Owner is a 'plugin_t' .
var ADF_OT_PLUGMOD
Owner is a 'plugmod_t' .
var ADF_OT_PROCMOD
Owner is a 'procmod_t' .
var ADF_OWN_HANDLER
handler is owned by the action; it'll be destroyed when the action is unregistered. You shouldn't have to use this.
var AHF_VERSION
action handler version (used by 'action_handler_t::flags' )
var AHF_VERSION_MASK
mask for 'action_handler_t::flags'
var ASKBTN_BTN1
First (Yes) button.
var ASKBTN_BTN2
Second (No) button.
var ASKBTN_BTN3
Third (Cancel) button.
var ASKBTN_CANCEL
Cancel button.
var ASKBTN_NO
No button.
var ASKBTN_YES
Yes button.
var AST_DISABLE
AST_DISABLE = 7
var AST_DISABLE_ALWAYS
AST_DISABLE_ALWAYS = 4
var AST_DISABLE_FOR_IDB
AST_DISABLE_FOR_IDB = 5
var AST_DISABLE_FOR_WIDGET
AST_DISABLE_FOR_WIDGET = 6
var AST_ENABLE
AST_ENABLE = 3
var AST_ENABLE_ALWAYS
AST_ENABLE_ALWAYS = 0
var AST_ENABLE_FOR_IDB
AST_ENABLE_FOR_IDB = 1
var AST_ENABLE_FOR_WIDGET
AST_ENABLE_FOR_WIDGET = 2
var BWN_ADDRWATCH
the 'Watch List' window
var BWN_BOOKMARKS
a persistent 'Bookmarks' widget
var BWN_BPTS
breakpoints
var BWN_CALLS
function calls
var BWN_CALLS_CALLEES
function calls, callees
var BWN_CALLS_CALLERS
function calls, callers
var BWN_CALL_STACK
call stack
var BWN_CHOOSER
a non-builtin chooser
var BWN_CLI
the command-line, in the output window
var BWN_CMDPALCSR
the command palette chooser (Qt version only)
var BWN_CMDPALWIN
the command palette window (Qt version only)
var BWN_CPUREGS
one of the 'General registers', 'FPU register', ... debugger windows
var BWN_CUSTVIEW
custom viewers
var BWN_CV_LINE_INFOS
custom viewers' lineinfo widget
var BWN_DISASM
disassembly views
var BWN_DISASMS
Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure bw-compat.
var BWN_DISASM_ARROWS
disassembly arrows widget
var BWN_DUMP
hex dumps
var BWN_DUMPS
Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure bw-compat.
var BWN_ENUMS
enumerations
var BWN_EXPORTS
exports
var BWN_FRAME
function frame
var BWN_FUNCS
functions
var BWN_IMPORTS
imports
var BWN_LOCALS
the 'locals' debugger window
var BWN_LOCTYPS
local types
var BWN_MDVIEWCSR
lumina metadata view chooser
var BWN_MODULES
modules
var BWN_NAMES
names
var BWN_NAVBAND
navigation band
var BWN_NOTEPAD
notepad
var BWN_OUTPUT
the text area, in the output window
var BWN_PROBS
problems
var BWN_PSEUDOCODE
hexrays decompiler views
var BWN_SCRIPTS_CSR
the "Recent scripts" chooser
search results
var BWN_SEARCHS
Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure bw-compat.
var BWN_SEGREGS
segment registers
var BWN_SEGS
segments
var BWN_SELS
selectors
var BWN_SHORTCUTCSR
the shortcuts chooser (Qt version only)
var BWN_SHORTCUTWIN
the shortcuts window (Qt version only)
var BWN_SIGNS
signatures
var BWN_SNIPPETS
the 'Execute script' window
var BWN_SNIPPETS_CSR
the list of snippets in the 'Execute script' window
var BWN_SO_OFFSETS
the 'Structure offsets' dialog's offset panel
var BWN_SO_STRUCTS
the 'Structure offsets' dialog's 'Structures and Unions' panel
var BWN_SRCPTHMAP_CSR
"Source paths..."'s path mappings chooser
var BWN_SRCPTHUND_CSR
"Source paths..."'s undesired paths chooser
var BWN_STACK
Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure bw-compat.
var BWN_STKVIEW
the 'Stack view' debugger window
var BWN_STRINGS
strings
var BWN_STRUCTS
structures
var BWN_THREADS
threads
var BWN_TILS
type libraries
var BWN_TRACE
tracing view
var BWN_UNDOHIST
Undo history.
var BWN_UNKNOWN
unknown window
var BWN_WATCH
the 'watches' debugger window
var BWN_XREFS
xrefs
var CB_CLOSE
CB_CLOSE = -3
var CB_DESTROYING
CB_DESTROYING = -5
var CB_INIT
CB_INIT = -1
var CB_INVISIBLE
CB_INVISIBLE = -4
var CB_YES
CB_YES = -2
var CDVF_LINEICONS
icons can be drawn over the line control
var CDVF_NOLINES
don't show line numbers
var CDVF_STATUSBAR
keep the status bar in the custom viewer
var CDVH_LINES_ALIGNMENT
CDVH_LINES_ALIGNMENT = 1009
var CDVH_LINES_CLICK
CDVH_LINES_CLICK = 1002
var CDVH_LINES_DBLCLICK
CDVH_LINES_DBLCLICK = 1003
var CDVH_LINES_DRAWICON
CDVH_LINES_DRAWICON = 1005
var CDVH_LINES_ICONMARGIN
CDVH_LINES_ICONMARGIN = 1007
var CDVH_LINES_LINENUM
CDVH_LINES_LINENUM = 1006
var CDVH_LINES_POPUP
CDVH_LINES_POPUP = 1004
var CDVH_LINES_RADIX
CDVH_LINES_RADIX = 1008
var CDVH_SRCVIEW
CDVH_SRCVIEW = 1001
var CDVH_USERDATA
CDVH_USERDATA = 1000
var CHCOL_DEC
decimal number
var CHCOL_DEFHIDDEN
column should be hidden by default
var CHCOL_DRAGHINT
the column number that will be used to build hints for the dragging undo label. This should be provided for at most one column for any given chooser.
var CHCOL_EA
address
var CHCOL_FNAME
function name
var CHCOL_FORMAT
column format mask
var CHCOL_HEX
hexadecimal number
var CHCOL_INODENAME
if CH_HAS_DIRTREE has been specified, this instructs the chooser that this column shows the inode name. This should be provided for at most one column for any given chooser.
var CHCOL_PATH
file path
var CHCOL_PLAIN
plain string
var CHITEM_BOLD
display the item in bold
var CHITEM_GRAY
gray out the item
var CHITEM_ITALIC
display the item in italic
var CHITEM_STRIKE
strikeout the item
var CHITEM_UNDER
underline the item
var CHOOSER_MENU_EDIT
CHOOSER_MENU_EDIT = 0
var CHOOSER_MENU_JUMP
CHOOSER_MENU_JUMP = 1
CHOOSER_MENU_SEARCH = 2
var CHOOSER_MULTI_SELECTION
CHOOSER_MULTI_SELECTION = 2
var CHOOSER_NOMAINMENU
CHOOSER_NOMAINMENU = 'NOMAINMENU\n'
var CHOOSER_NOSTATUSBAR
CHOOSER_NOSTATUSBAR = 'NOSTATUSBAR\n'
var CHOOSER_NO_SELECTION
CHOOSER_NO_SELECTION = 1
var CHOOSER_POPUP_MENU
CHOOSER_POPUP_MENU = 4
var CH_ATTRS
generate ui_get_chooser_item_attrs (gui only)
var CH_BUILTIN_MASK
Mask for builtin chooser numbers. Plugins should not use them.
var CH_BUILTIN_SHIFT
CH_BUILTIN_SHIFT = 19
var CH_CAN_DEL
allow to delete existing item(s)
var CH_CAN_EDIT
allow to edit existing item(s)
var CH_CAN_INS
allow to insert new items
var CH_CAN_REFRESH
allow to refresh chooser
var CH_FORCE_DEFAULT
if a non-modal chooser was already open, change selection to the default one
var CH_HAS_DIFF
The chooser can be used in a diffing/merging workflow.
var CH_HAS_DIRTREE
The chooser can provide a 'dirtree_t' , meaning a tree-like structure can be provided to the user (instead of a flat table)
var CH_KEEP
The chooser instance's lifecycle is not tied to the lifecycle of the widget showing its contents. Closing the widget will not destroy the chooser structure. This allows for, e.g., static global chooser instances that don't need to be allocated on the heap. Also stack- allocated chooser instances must set this bit.
var CH_MODAL
Modal chooser.
var CH_MULTI
Obsolete.
The chooser will allow multi-selection (only for GUI choosers). This bit is set when using the 'chooser_multi_t' structure.
var CH_MULTI_EDIT
CH_MULTI_EDIT = 8
var CH_NOBTNS
do not display ok/cancel/help/search buttons. Meaningful only for gui modal windows because non-modal windows do not have any buttons anyway. Text mode does not have them neither.
var CH_NOIDB
use the chooser before opening the database
var CH_NO_FILTER
The chooser will not have filtering abilities.
var CH_NO_SORT
The chooser will not have sorting abilities.
var CH_NO_STATUS_BAR
don't show a status bar
var CH_QFLT
open with quick filter enabled and focused
var CH_QFTYP_DEFAULT
set quick filtering type to the possible existing default for this chooser
var CH_QFTYP_FUZZY
fuzzy search quick filter type
var CH_QFTYP_MASK
CH_QFTYP_MASK = 57344
var CH_QFTYP_NORMAL
normal (i.e., lexicographical) quick filter type
var CH_QFTYP_REGEX
regex quick filter type
var CH_QFTYP_SHIFT
CH_QFTYP_SHIFT = 13
var CH_QFTYP_WHOLE_WORDS
whole words quick filter type
var CH_RENAME_IS_EDIT
triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() callback for the corresponding row.
var CH_RESTORE
restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only)
var CH_TM_FOLDERS_ONLY
chooser will show in folders-only mode
var CH_TM_FULL_TREE
chooser will show in no-tree mode
var CH_TM_MASK
CH_TM_MASK = 201326592
var CH_TM_NO_TREE
chooser will show up in no-tree mode
var CH_TM_SHIFT
CH_TM_SHIFT = 26
var CK_EXTRA1
extra background overlay #1
var CK_EXTRA10
extra background overlay #10
var CK_EXTRA11
extra background overlay #11
var CK_EXTRA12
extra background overlay #12
var CK_EXTRA13
extra background overlay #13
var CK_EXTRA14
extra background overlay #14
var CK_EXTRA15
extra background overlay #15
var CK_EXTRA16
extra background overlay #16
var CK_EXTRA2
extra background overlay #2
var CK_EXTRA3
extra background overlay #3
var CK_EXTRA4
extra background overlay #4
var CK_EXTRA5
extra background overlay #5
var CK_EXTRA6
extra background overlay #6
var CK_EXTRA7
extra background overlay #7
var CK_EXTRA8
extra background overlay #8
var CK_EXTRA9
extra background overlay #9
var CK_TRACE
traced address
var CK_TRACE_OVL
overlay trace address
var CLNL_FINDCMT
Search for the comment symbol everywhere in the line, not only at the beginning.
var CLNL_LTRIM
Remove leading space characters.
var CLNL_RTRIM
Remove trailing space characters.
var CLNL_TRIM
CLNL_TRIM = 3
var CREATETB_ADV
toolbar is for 'advanced mode' only
var CVH_CLICK
CVH_CLICK = 6
var CVH_CLOSE
CVH_CLOSE = 5
var CVH_CURPOS
CVH_CURPOS = 4
var CVH_DBLCLICK
CVH_DBLCLICK = 3
var CVH_HELP
CVH_HELP = 8
var CVH_KEYDOWN
CVH_KEYDOWN = 1
var CVH_MOUSEMOVE
CVH_MOUSEMOVE = 9
var CVH_POPUP
CVH_POPUP = 2
var CVH_QT_AWARE
CVH_QT_AWARE = 7
var CVH_USERDATA
CVH_USERDATA = 0
var CVNF_ACT
activate (i.e., switch to) the viewer. Activation is performed before the new 'lochist_entry_t' instance is actually copied to the viewer's 'lochist_t' (otherwise, if the viewer was invisible its on_location_changed() handler wouldn't be called.)
var CVNF_JUMP
push the current position in this viewer's 'lochist_t' before going to the new location
var CVNF_LAZY
try and move the cursor to a line displaying the 'place_t' if possible. This might disregard the Y position in case of success
var DEFAULT_PLACE_LNNUM
DEFAULT_PLACE_LNNUM = -1
var DP_BEFORE
place src_form before dst_form in the tab bar instead of after used with 'DP_INSIDE' .
var DP_BOTTOM
Dock src_form below dest_form.
var DP_FLOATING
Make src_form floating.
var DP_INSIDE
Create a new tab bar with both src_form and dest_form.
var DP_LEFT
Dock src_form to the left of dest_form.
var DP_RIGHT
Dock src_form to the right of dest_form.
var DP_SZHINT
When floating or in a splitter (i.e., not tabbed), use the widget's size hint to determine the best geometry (Qt only)
var DP_TAB
Place src_form into a tab next to dest_form, if dest_form is in a tab bar (otherwise the same as 'DP_INSIDE' )
var DP_TOP
Dock src_form above dest_form.
var HIF_IDENTIFIER
text is an identifier (i.e., when searching for the current highlight, SEARCH_IDENT will be used)
var HIF_LOCKED
locked; clicking/moving the cursor around doesn't change the highlight
var HIF_NOCASE
case insensitive
var HIF_REGISTER
text represents a register (aliases/subregisters will be highlit as well)
var HIST_CMD
commands
var HIST_CMT
comments
var HIST_DIR
directory names (text version only)
var HIST_FILE
file names
var HIST_IDENT
names
var HIST_SEG
segment names
var HIST_SRCH
search substrings
var HIST_TYPE
type declarations
var IDCHK_ARG
bad argument(s)
var IDCHK_KEY
bad hotkey name
var IDCHK_MAX
too many IDC hotkeys
var IDCHK_OK
ok
var IK_ADD
IK_ADD = 107
var IK_APPS
IK_APPS = 93
var IK_BACK
IK_BACK = 8
var IK_BROWSER_BACK
IK_BROWSER_BACK = 166
var IK_BROWSER_FAVORITES
IK_BROWSER_FAVORITES = 171
var IK_BROWSER_FORWARD
IK_BROWSER_FORWARD = 167
var IK_BROWSER_HOME
IK_BROWSER_HOME = 172
var IK_BROWSER_REFRESH
IK_BROWSER_REFRESH = 168
IK_BROWSER_SEARCH = 170
var IK_BROWSER_STOP
IK_BROWSER_STOP = 169
var IK_CANCEL
IK_CANCEL = 3
var IK_CAPITAL
IK_CAPITAL = 20
var IK_CLEAR
IK_CLEAR = 12
var IK_CONTROL
IK_CONTROL = 17
var IK_DECIMAL
IK_DECIMAL = 110
var IK_DELETE
IK_DELETE = 46
var IK_DIVIDE
IK_DIVIDE = 111
var IK_DOWN
IK_DOWN = 40
var IK_END
IK_END = 35
var IK_ESCAPE
IK_ESCAPE = 27
var IK_EXECUTE
IK_EXECUTE = 43
var IK_F1
IK_F1 = 112
var IK_F10
IK_F10 = 121
var IK_F11
IK_F11 = 122
var IK_F12
IK_F12 = 123
var IK_F13
IK_F13 = 124
var IK_F14
IK_F14 = 125
var IK_F15
IK_F15 = 126
var IK_F16
IK_F16 = 127
var IK_F17
IK_F17 = 128
var IK_F18
IK_F18 = 129
var IK_F19
IK_F19 = 130
var IK_F2
IK_F2 = 113
var IK_F20
IK_F20 = 131
var IK_F21
IK_F21 = 132
var IK_F22
IK_F22 = 133
var IK_F23
IK_F23 = 134
var IK_F24
IK_F24 = 135
var IK_F3
IK_F3 = 114
var IK_F4
IK_F4 = 115
var IK_F5
IK_F5 = 116
var IK_F6
IK_F6 = 117
var IK_F7
IK_F7 = 118
var IK_F8
IK_F8 = 119
var IK_F9
IK_F9 = 120
var IK_HELP
IK_HELP = 47
var IK_HOME
IK_HOME = 36
var IK_INSERT
IK_INSERT = 45
var IK_KANA
IK_KANA = 21
var IK_LAUNCH_APP1
IK_LAUNCH_APP1 = 182
var IK_LAUNCH_APP2
IK_LAUNCH_APP2 = 183
var IK_LAUNCH_MAIL
IK_LAUNCH_MAIL = 180
var IK_LAUNCH_MEDIA_SELECT
IK_LAUNCH_MEDIA_SELECT = 181
var IK_LCONTROL
IK_LCONTROL = 162
var IK_LEFT
IK_LEFT = 37
var IK_LMENU
IK_LMENU = 164
var IK_LSHIFT
IK_LSHIFT = 160
var IK_LWIN
IK_LWIN = 91
var IK_MEDIA_NEXT_TRACK
IK_MEDIA_NEXT_TRACK = 176
var IK_MEDIA_PLAY_PAUSE
IK_MEDIA_PLAY_PAUSE = 179
var IK_MEDIA_PREV_TRACK
IK_MEDIA_PREV_TRACK = 177
var IK_MEDIA_STOP
IK_MEDIA_STOP = 178
var IK_MENU
IK_MENU = 18
var IK_MODECHANGE
IK_MODECHANGE = 31
var IK_MULTIPLY
IK_MULTIPLY = 106
var IK_NEXT
IK_NEXT = 34
var IK_NUMLOCK
IK_NUMLOCK = 144
var IK_NUMPAD0
IK_NUMPAD0 = 96
var IK_NUMPAD1
IK_NUMPAD1 = 97
var IK_NUMPAD2
IK_NUMPAD2 = 98
var IK_NUMPAD3
IK_NUMPAD3 = 99
var IK_NUMPAD4
IK_NUMPAD4 = 100
var IK_NUMPAD5
IK_NUMPAD5 = 101
var IK_NUMPAD6
IK_NUMPAD6 = 102
var IK_NUMPAD7
IK_NUMPAD7 = 103
var IK_NUMPAD8
IK_NUMPAD8 = 104
var IK_NUMPAD9
IK_NUMPAD9 = 105
var IK_OEM_1
IK_OEM_1 = 186
var IK_OEM_102
IK_OEM_102 = 226
var IK_OEM_2
IK_OEM_2 = 191
var IK_OEM_3
IK_OEM_3 = 192
var IK_OEM_4
IK_OEM_4 = 219
var IK_OEM_5
IK_OEM_5 = 220
var IK_OEM_6
IK_OEM_6 = 221
var IK_OEM_7
IK_OEM_7 = 222
var IK_OEM_CLEAR
IK_OEM_CLEAR = 254
var IK_OEM_COMMA
IK_OEM_COMMA = 188
var IK_OEM_FJ_MASSHOU
IK_OEM_FJ_MASSHOU = 147
var IK_OEM_FJ_TOUROKU
IK_OEM_FJ_TOUROKU = 148
var IK_OEM_MINUS
IK_OEM_MINUS = 189
var IK_OEM_PERIOD
IK_OEM_PERIOD = 190
var IK_OEM_PLUS
IK_OEM_PLUS = 187
var IK_PAUSE
IK_PAUSE = 19
var IK_PLAY
IK_PLAY = 250
var IK_PRINT
IK_PRINT = 42
var IK_PRIOR
IK_PRIOR = 33
var IK_RCONTROL
IK_RCONTROL = 163
var IK_RETURN
IK_RETURN = 13
var IK_RIGHT
IK_RIGHT = 39
var IK_RMENU
IK_RMENU = 165
var IK_RSHIFT
IK_RSHIFT = 161
var IK_RWIN
IK_RWIN = 92
var IK_SCROLL
IK_SCROLL = 145
var IK_SELECT
IK_SELECT = 41
var IK_SEPARATOR
IK_SEPARATOR = 108
var IK_SHIFT
IK_SHIFT = 16
var IK_SLEEP
IK_SLEEP = 95
var IK_SNAPSHOT
IK_SNAPSHOT = 44
var IK_SPACE
IK_SPACE = 32
var IK_SUBTRACT
IK_SUBTRACT = 109
var IK_TAB
IK_TAB = 9
var IK_UP
IK_UP = 38
var IK_VOLUME_DOWN
IK_VOLUME_DOWN = 174
var IK_VOLUME_MUTE
IK_VOLUME_MUTE = 173
var IK_VOLUME_UP
IK_VOLUME_UP = 175
var IK_ZOOM
IK_ZOOM = 251
var IWID_ADDRWATCH
address watches (47)
var IWID_ALL
mask
var IWID_BOOKMARKS
bookmarks list (59)
var IWID_BPTS
breakpoints (13)
var IWID_CALLS
function calls (11)
var IWID_CALLS_CALLEES
funcalls, callees (50)
var IWID_CALLS_CALLERS
funcalls, callers (49)
var IWID_CALL_STACK
call stack (17)
var IWID_CHOOSER
chooser (37)
var IWID_CLI
input line (33)
var IWID_CMDPALCSR
command palette (43)
var IWID_CMDPALWIN
command palette (44)
var IWID_CPUREGS
registers (40)
var IWID_CUSTVIEW
custom viewers (46)
var IWID_CV_LINE_INFOS
lineinfo widget (53)
var IWID_DISASM
disassembly views (29)
var IWID_DISASMS
IWID_DISASMS = 536870912
var IWID_DISASM_ARROWS
arrows widget (52)
var IWID_DUMP
hex dumps (30)
var IWID_DUMPS
IWID_DUMPS = 1073741824
var IWID_ENUMS
enumerations (27)
var IWID_EXPORTS
exports (0)
var IWID_FRAME
function frame (25)
var IWID_FUNCS
functions (3)
var IWID_IMPORTS
imports (1)
var IWID_LOCALS
locals (35)
var IWID_LOCTYPS
local types (10)
var IWID_MDVIEWCSR
lumina md view (51)
var IWID_MODULES
modules (15)
var IWID_NAMES
names (2)
var IWID_NAVBAND
navigation band (26)
var IWID_NOTEPAD
notepad (31)
var IWID_OUTPUT
output (32)
var IWID_PROBS
problems (12)
var IWID_PSEUDOCODE
decompiler (48)
var IWID_SCRIPTS_CSR
recent scripts (58)
search results (19)
var IWID_SEARCHS
IWID_SEARCHS = 524288
var IWID_SEGREGS
segment registers (6)
var IWID_SEGS
segments (5)
var IWID_SELS
selectors (7)
var IWID_SHORTCUTCSR
shortcuts chooser (38)
var IWID_SHORTCUTWIN
shortcuts window (39)
var IWID_SIGNS
signatures (8)
var IWID_SNIPPETS
snippets (45)
var IWID_SNIPPETS_CSR
snippets chooser (57)
var IWID_SO_OFFSETS
stroff (42)
var IWID_SO_STRUCTS
stroff (41)
var IWID_SRCPTHMAP_CSR
mappings chooser (54)
var IWID_SRCPTHUND_CSR
undesired chooser (55)
var IWID_STACK
Alias. Some IWID_* were confusing, and thus have been renamed. This is to ensure bw-compat.
var IWID_STKVIEW
stack view (36)
var IWID_STRINGS
strings (4)
var IWID_STRUCTS
structures (28)
var IWID_THREADS
threads (14)
var IWID_TILS
type libraries (9)
var IWID_TRACE
tracing view (16)
var IWID_UNDOHIST
Undo history (56)
var IWID_WATCH
watches (34)
var IWID_XREFS
xrefs (18)
var LECVT_CANCELED
LECVT_CANCELED = -1
var LECVT_ERROR
LECVT_ERROR = 0
var LECVT_OK
LECVT_OK = 1
var LECVT_WITHIN_LISTING
LECVT_WITHIN_LISTING = 1
var LROEF_CPS_RANGE
background for range of chars
var LROEF_FULL_LINE
full line background
var LROEF_MASK
LROEF_MASK = 16777215
var MFF_FAST
Execute code as soon as possible. this mode is ok for calling ui related functions that do not query the database.
var MFF_NOWAIT
Do not wait for the request to be executed. the caller should ensure that the request is not destroyed until the execution completes. if not, the request will be ignored. the request must be created using the 'new' operator to use it with this flag. it can be used in 'cancel_exec_request()' . This flag can be used to delay the code execution until the next UI loop run even from the main thread.
var MFF_READ
Execute code only when ida is idle and it is safe to query the database. this mode is recommended only for code that does not modify the database. (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box)
var MFF_WRITE
Execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is a modal dialog box on the screen this mode can be used to call any ida api function 'MFF_WRITE' implies 'MFF_READ'
var PCF_EA_CAPABLE
toea() implementation returns meaningful data
var PCF_MAKEPLACE_ALLOCATES
makeplace() returns a freshly allocated (i.e., non-static) instance. All new code should pass that flag to 'register_place_class()' , and the corresponding makeplace() class implementation should return new instances.
var REG_HINTS_MARKER
REG_HINTS_MARKER = '\x01\x7f'
var REG_HINTS_MARKER_LEN
REG_HINTS_MARKER_LEN = 2
var RENADDR_HR
dialog for "Pseudocode" additional flags: 0x01 Library function 0x02 Mark as decompiled
var RENADDR_IDA
dialog for "IDA View"
var SETMENU_APP
add menu item after the specified path
var SETMENU_FIRST
add item to the beginning of menu
var SETMENU_INS
add menu item before the specified path (default)
var SETMENU_POSMASK
SETMENU_POSMASK = 3
var SRCDBG_HINTS_MARKER
SRCDBG_HINTS_MARKER = '\x01~'
var SRCDBG_HINTS_MARKER_LEN
SRCDBG_HINTS_MARKER_LEN = 2
var SVF_COPY_LINES
keep a local copy of '*lines'
var SVF_LINES_BYPTR
remember the 'lines' ptr. do not make a copy of '*lines'
var TCCPT_ENUMPLACE
TCCPT_ENUMPLACE = 4
var TCCPT_IDAPLACE
TCCPT_IDAPLACE = 3
var TCCPT_INVALID
TCCPT_INVALID = 0
var TCCPT_PLACE
TCCPT_PLACE = 1
var TCCPT_SIMPLELINE_PLACE
TCCPT_SIMPLELINE_PLACE = 2
var TCCPT_STRUCTPLACE
TCCPT_STRUCTPLACE = 5
var TCCRT_FLAT
TCCRT_FLAT = 1
var TCCRT_GRAPH
TCCRT_GRAPH = 2
var TCCRT_INVALID
TCCRT_INVALID = 0
var TCCRT_PROXIMITY
TCCRT_PROXIMITY = 3
var UIJMP_ACTIVATE
activate the new window
var UIJMP_ANYVIEW
jump in any ea_t-capable view
var UIJMP_DONTPUSH
do not remember the current address in the navigation history
var UIJMP_IDAVIEW
jump in idaview
var UIJMP_IDAVIEW_NEW
jump in new idaview
var UIJMP_VIEWMASK
UIJMP_VIEWMASK = 12
var VES_ALT
VES_ALT = 2
var VES_CTRL
VES_CTRL = 4
var VES_META
VES_META = 128
var VES_MOUSE_LEFT
VES_MOUSE_LEFT = 8
var VES_MOUSE_MIDDLE
VES_MOUSE_MIDDLE = 32
var VES_MOUSE_RIGHT
VES_MOUSE_RIGHT = 16
var VES_SHIFT
state & 1 => Shift is pressedstate & 2 => Alt is pressedstate & 4 => Ctrl is pressedstate & 8 => Mouse left button is pressedstate & 16 => Mouse right button is pressedstate & 32 => Mouse middle button is pressedstate & 128 => Meta is pressed (OSX only)
var VME_LEFT_BUTTON
VME_LEFT_BUTTON = 1
var VME_MID_BUTTON
VME_MID_BUTTON = 3
var VME_RIGHT_BUTTON
VME_RIGHT_BUTTON = 2
var VME_UNKNOWN
VME_UNKNOWN = 0
var WCLS_CLOSE_LATER
WCLS_CLOSE_LATER = 8
var WCLS_DELETE_LATER
assign the deletion of the widget to the UI loop ///<
var WCLS_DONT_SAVE_SIZE
don't save size of the window
var WCLS_NO_CONTEXT
don't change the current context (useful for toolbars)
var WCLS_SAVE
save state in desktop config
var WOPN_CLOSED_BY_ESC
override idagui.cfg:CLOSED_BY_ESC: esc will close
var WOPN_DP_BEFORE
place widget before dst_form in the tab bar instead of after used with 'WOPN_DP_INSIDE' and 'WOPN_DP_TAB'
var WOPN_DP_BOTTOM
Dock widget below dest_ctrl.
var WOPN_DP_FLOATING
Make widget floating.
var WOPN_DP_INSIDE
Create a new tab bar with both widget and dest_ctrl.
var WOPN_DP_INSIDE_BEFORE
WOPN_DP_INSIDE_BEFORE = 3145728
var WOPN_DP_LEFT
Dock widget to the left of dest_ctrl.
var WOPN_DP_MASK
WOPN_DP_MASK = 268369920
var WOPN_DP_RIGHT
Dock widget to the right of dest_ctrl.
var WOPN_DP_SHIFT
WOPN_DP_SHIFT = 16
var WOPN_DP_SZHINT
when floating or in a splitter (i.e., not tabbed), use the widget's size hint to determine the best geometry (Qt only)
var WOPN_DP_TAB
Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar (otherwise the same as 'WOPN_DP_INSIDE' )
var WOPN_DP_TAB_BEFORE
WOPN_DP_TAB_BEFORE = 6291456
var WOPN_DP_TOP
Dock widget above dest_ctrl.
var WOPN_NOT_CLOSED_BY_ESC
override idagui.cfg:CLOSED_BY_ESC: esc will not close
var WOPN_PERSIST
widget will remain available when starting or stopping debugger sessions
var WOPN_RESTORE
if the widget was the only widget in a floating area the last time it was closed, it will be restored as floating, with the same position+size as before
var beep_default
beep_default = 0
var chtype_entry
chtype_entry = 2
var chtype_enum
chtype_enum = 6
var chtype_enum_by_value
chtype_enum_by_value = 7
var chtype_enum_by_value_and_size
chtype_enum_by_value_and_size = 13
var chtype_func
chtype_func = 8
var chtype_generic
chtype_generic = 0
var chtype_idasgn
chtype_idasgn = 1
var chtype_idatil
chtype_idatil = 12
var chtype_name
chtype_name = 3
var chtype_segm
chtype_segm = 9
var chtype_srcp
chtype_srcp = 14
var chtype_stkvar_xref
chtype_stkvar_xref = 4
var chtype_strpath
chtype_strpath = 11
var chtype_struc
chtype_struc = 10
var chtype_xref
chtype_xref = 5
var mbox_error
mbox_error = 3
var mbox_feedback
mbox_feedback = 5
var mbox_filestruct
mbox_filestruct = 8
var mbox_hide
mbox_hide = 10
var mbox_info
mbox_info = 1
var mbox_internal
mbox_internal = 0
var mbox_nomem
mbox_nomem = 4
var mbox_readerror
mbox_readerror = 6
var mbox_replace
mbox_replace = 11
var mbox_wait
mbox_wait = 9
var mbox_warning
mbox_warning = 2
var mbox_writeerror
mbox_writeerror = 7
var msg_activated
msg_activated = 0
var msg_click
msg_click = 2
var msg_closed
msg_closed = 4
var msg_dblclick
msg_dblclick = 3
var msg_deactivated
msg_deactivated = 1
var msg_keydown
msg_keydown = 5
var nat_auto
nat_auto = 9
var nat_cod
nat_cod = 2
var nat_cur
nat_cur = 8
var nat_dat
nat_dat = 3
var nat_err
nat_err = 6
var nat_ext
nat_ext = 5
var nat_fun
nat_fun = 1
var nat_gap
nat_gap = 7
var nat_hlo
nat_hlo = 11
var nat_last
nat_last = 12
var nat_lib
nat_lib = 0
var nat_lum
nat_lum = 10
var nat_und
nat_und = 4
var view_activated
view_activated = 0
var view_click
view_click = 3
var view_close
view_close = 7
var view_created
view_created = 6
var view_curpos
view_curpos = 5
var view_dblclick
view_dblclick = 4
var view_deactivated
view_deactivated = 1
var view_keydown
view_keydown = 2
var view_loc_changed
view_loc_changed = 10
var view_mouse_moved
view_mouse_moved = 11
var view_mouse_over
view_mouse_over = 9
var view_switched
view_switched = 8

Functions

def TWidget__from_ptrval__(*args) ‑> TWidget *
TWidget__from_ptrval__(ptrval) -> TWidget *
ptrval: size_t
def activate_widget(*args) ‑> void
Activate widget (only gui version) ( 'ui_activate_widget' ).
activate_widget(widget, take_focus)
widget: existing widget to display (C++: TWidget *)
take_focus: give focus to given widget (C++: bool)
def add_hotkey(*args) ‑> PyObject *
add_hotkey(hotkey, pyfunc) -> PyObject *
Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed
hotkey: The hotkey
pyfunc: Callable
return: Context object on success or None on failure.
def add_idc_hotkey(*args) ‑> int
Add hotkey for IDC function ( 'ui_add_idckey' ).
add_idc_hotkey(hotkey, idcfunc) -> int
hotkey: hotkey name (C++: const char *)
idcfunc: IDC function name (C++: const char *)
return: IDC hotkey error codes
def add_spaces(*args) ‑> PyObject *
Add space characters to the colored string so that its length will be at least 'len' characters. Don't trim the string if it is longer than 'len'.
add_spaces(s, len) -> PyObject *
s: char const *
len: the desired length of the string (C++: ssize_t)
return: pointer to the end of input string
def addon_count(*args) ‑> int
Get number of installed addons.
def analyzer_options(*args) ‑> void
Allow the user to set analyzer options. (show a dialog box) ( 'ui_analyzer_options' )
def ask_addr(defval, format)
def ask_buttons(*args) ‑> int
Display a dialog box and get choice from maximum three possibilities ( 'ui_ask_buttons' ).for all buttons:use "" or NULL to take the default name for the button.use 'format' to hide the cancel button
ask_buttons(Yes, No, Cancel, deflt, format) -> int
Yes: text for the first button (C++: const char *)
No: text for the second button (C++: const char *)
Cancel: text for the third button (C++: const char *)
deflt: default choice: one of Button IDs (C++: int)
format: printf-style format string for question. It may have
some prefixes, see below. (C++: const char *)
return: one of Button IDs specifying the selected button (Esc key
returns Cancel/3rd button value)
def ask_file(*args) ‑> char *
ask_file(for_saving, defval, format) -> char *
for_saving (C++: bool)
defval (C++: const char *)
format (C++: const char *)
def ask_for_feedback(*args) ‑> void
Show a message box asking to send the input file tosupport@hex- rays.com.
ask_for_feedback(format)
format: the reason why the input file is bad (C++: const char
*)
def ask_form(*args)
def ask_ident(defval, format)
def ask_long(defval, format)
def ask_seg(defval, format)
def ask_str(*args) ‑> PyObject *
ask_str(defval, hist, prompt) -> PyObject *
Asks for a long text
hist: history id
defval: The default value
prompt: The prompt value
return: None or the entered string
def ask_text(*args) ‑> PyObject *
ask_text(max_size, defval, prompt) -> PyObject *
Asks for a long text
max_size: Maximum text length, 0 for unlimited
defval: The default value
prompt: The prompt value
return: None or the entered string
def ask_yn(*args) ‑> int
Display a dialog box and get choice from "Yes", "No", "Cancel".
ask_yn(deflt, format) -> int
deflt: default choice: one of Button IDs (C++: int)
format: The question in printf() style format (C++: const char
*)
return: the selected button (one of Button IDs ). Esc key returns
ASKBTN_CANCEL .
def attach_action_to_menu(*args) ‑> bool
Attach a previously-registered action to the menu ( 'ui_attach_action_to_menu' ).You should not change top level menu, or the Edit,Plugins submenus If you want to modify the debugger menu, do it at the ui_debugger_menu_change event (ida might destroy your menu item if you do it elsewhere).
attach_action_to_menu(menupath, name, flags) -> bool
menupath: path to the menu item after or before which the
insertion will take place. Example: Debug/StartProcess Whitespace, punctuation are ignored. It is allowed to specify only the prefix of the menu item. Comparison is case insensitive. menupath may start with the following prefixes: [S]
  • modify the main menu of the structure window [E]
  • modify the main menu of the enum window (C++: const char *)
name: the action name (C++: const char *)
flags: a combination of Set menu flags , to determine menu
item position (C++: int)
return: success
def attach_action_to_popup(*args) ‑> bool
Insert a previously-registered action into the widget's popup menu ( 'ui_attach_action_to_popup' ). This function has two "modes": 'single- shot', and 'permanent'.
attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool
widget: target widget (C++: TWidget *)
popup_handle: target popup menu if non-NULL, the action is
added to this popup menu invocation (i.e., 'single-shot') if NULL, the action is added to a list of actions that should always be present in context menus for this widget (i.e., 'permanent'.) (C++: TPopupMenu *)
name: action name (C++: const char *)
popuppath: can be NULL (C++: const char *)
flags: a combination of SETMENU_ flags (see Set menu flags )
(C++: int)
return: success
def attach_action_to_toolbar(*args) ‑> bool
Attach an action to an existing toolbar ( 'ui_attach_action_to_toolbar' ).
attach_action_to_toolbar(toolbar_name, name) -> bool
toolbar_name: the name of the toolbar (C++: const char *)
name: the action name (C++: const char *)
return: success
def attach_dynamic_action_to_popup(*args) ‑> bool
Create & insert an action into the widget's popup menu ( 'ui_attach_dynamic_action_to_popup' ). 'action_desc_t::handler' for 'desc' must be instantiated using 'new', as it will be 'delete'd when the action is unregistered.
attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool
widget: target widget (C++: TWidget *)
popup_handle: target popup (C++: TPopupMenu *)
desc: created with DYNACTION_DESC_LITERAL (C++: const
action_desc_t &)
popuppath: can be NULL (C++: const char *)
flags: a combination of SETMENU_ constants (see Set menu flags
) (C++: int)
return: success
def banner(*args) ‑> bool
Show a banner dialog box ( 'ui_banner' ).
banner(wait) -> bool
wait: time to wait before closing (C++: int)
retval: 1 - ok
retval: 0 - esc was pressed
def beep(*args) ‑> void
Issue a beeping sound ( 'ui_beep' ).
beep(beep_type=beep_default)
beep_type: beep_t (C++: beep_t)
def call_nav_colorizer(*args) ‑> uint32
call_nav_colorizer(dict, ea, nbytes) -> uint32
To be used with the IDA-provided colorizer, that is returned as result of the first call to set_nav_colorizer().
def cancel_exec_request(*args) ‑> bool
Try to cancel an asynchronous exec request ( 'ui_cancel_exec_request' ).
cancel_exec_request(req_id) -> bool
req_id: request id (C++: int)
retval: true - successfully canceled
retval: false - request has already been processed.
def cancel_thread_exec_requests(*args) ‑> int
Try to cancel asynchronous exec requests created by the specified thread.
cancel_thread_exec_requests(tid) -> int
tid: thread id (C++: qthread_t)
return: number of the canceled requests.
def choose_activate(*args) ‑> void
choose_activate(_self)
self: PyObject *
def choose_choose(*args) ‑> PyObject *
choose_choose(_self) -> PyObject *
self: PyObject *
def choose_close(*args) ‑> void
choose_close(_self)
self: PyObject *
def choose_create_embedded_chobj(*args) ‑> PyObject *
choose_create_embedded_chobj(_self) -> PyObject *
self: PyObject *
def choose_entry(*args) ‑> ea_t
Choose an entry point ( 'ui_choose' , 'chtype_entry' ).
choose_entry(title) -> ea_t
title: chooser title (C++: const char *)
return: ea of selected entry point, BADADDR if none selected
def choose_enum(*args) ‑> enum_t
Choose an enum ( 'ui_choose' , 'chtype_enum' ).
choose_enum(title, default_id) -> enum_t
title: chooser title (C++: const char *)
default_id: id of enum to select by default (C++: enum_t)
return: enum id of selected enum, BADNODE if none selected
def choose_enum_by_value(*args) ‑> uchar *
Choose an enum, restricted by value & size ( 'ui_choose' , 'chtype_enum_by_value_and_size' ). If the given value cannot be found initially, this function will ask if the user would like to import a standard enum.
choose_enum_by_value(title, default_id, value, nbytes) -> enum_t
title: chooser title (C++: const char *)
default_id: id of enum to select by default (C++: enum_t)
value: value to search for (C++: uint64)
nbytes: size of value (C++: int)
return: enum id of selected (or imported) enum, BADNODE if none was
found
def choose_find(*args) ‑> PyObject *
choose_find(title) -> PyObject *
title: char const *
def choose_func(*args) ‑> func_t *
Choose a function ( 'ui_choose' , 'chtype_func' ).
choose_func(title, default_ea) -> func_t *
title: chooser title (C++: const char *)
default_ea: ea of function to select by default (C++: ea_t)
return: pointer to function that was selected, NULL if none selected
def choose_get_widget(*args) ‑> TWidget *
choose_get_widget(_self) -> TWidget *
self: PyObject *
def choose_idasgn(*args) ‑> PyObject *
choose_idasgn() -> PyObject *
Opens the signature chooser
return: None or the selected signature name
def choose_name(*args) ‑> ea_t
Choose a name ( 'ui_choose' , 'chtype_name' ).
choose_name(title) -> ea_t
title: chooser title (C++: const char *)
return: ea of selected name, BADADDR if none selected
def choose_refresh(*args) ‑> void
choose_refresh(_self)
self: PyObject *
def choose_segm(*args) ‑> segment_t *
Choose a segment ( 'ui_choose' , 'chtype_segm' ).
choose_segm(title, default_ea) -> segment_t *
title: chooser title (C++: const char *)
default_ea: ea of segment to select by default (C++: ea_t)
return: pointer to segment that was selected, NULL if none selected
def choose_srcp(*args) ‑> sreg_range_t *
Choose a segment register change point ( 'ui_choose' , 'chtype_srcp' ).
choose_srcp(title) -> sreg_range_t *
title: chooser title (C++: const char *)
return: pointer to segment register range of selected change point,
NULL if none selected
def choose_stkvar_xref(*args) ‑> ea_t
Choose an xref to a stack variable ( 'ui_choose' , 'chtype_name' ).
choose_stkvar_xref(pfn, mptr) -> ea_t
pfn: function (C++: func_t *)
mptr: variable (C++: member_t *)
return: ea of the selected xref, BADADDR if none selected
def choose_struc(*args) ‑> struc_t *
Choose a structure ( 'ui_choose' , 'chtype_segm' ).
choose_struc(title) -> struc_t *
title: chooser title; (C++: const char *)
return: pointer to structure that was selected, NULL if none selected
def choose_til(*args) ‑> qstring *
Choose a type library ( 'ui_choose' , 'chtype_idatil' ).
def choose_xref(*args) ‑> ea_t
Choose an xref to an address ( 'ui_choose' , 'chtype_xref' ).
choose_xref(to) -> ea_t
to: referenced address (C++: ea_t)
return: ea of selected xref, BADADDR if none selected
def clear_refresh_request(*args) ‑> void
clear_refresh_request(mask)
mask (C++: uint64)
def close_chooser(*args) ‑> bool
Close a non-modal chooser ( 'ui_close_chooser' ).
close_chooser(title) -> bool
title: window title of chooser to close (C++: const char *)
return: success
def close_widget(*args) ‑> void
Close widget ( 'ui_close_widget' , only gui version).
close_widget(widget, options)
widget: pointer to the widget to close (C++: TWidget *)
options: Form close flags (C++: int)
def clr_cancelled(*args) ‑> void
Clear "Cancelled" flag ( 'ui_clr_cancelled' )
def create_code_viewer(*args) ‑> TWidget *
Create a code viewer ( 'ui_create_code_viewer' ). A code viewer contains on the left side a widget representing the line numbers, and on the right side, the child widget passed as parameter. It will inherit its title from the child widget.
create_code_viewer(custview, flags=0, parent=None) -> TWidget *
custview: the custom view to be added (C++: TWidget *)
flags: Code viewer flags (C++: int)
parent: widget to contain the new code viewer (C++: TWidget *)
def create_empty_widget(*args) ‑> TWidget *
Create an empty widget, serving as a container for custom user widgets
create_empty_widget(title, icon=-1) -> TWidget *
title (C++: const char *)
icon (C++: int)
def create_menu(*args) ‑> bool
Create a menu with the given name, label and optional position, either in the menubar, or as a submenu. If 'menupath' is non-NULL, it provides information about where the menu should be positioned. First, IDA will try and resolve the corresponding menu by its name. If such an existing menu is found and is present in the menubar, then the new menu will be inserted in the menubar before it. Otherwise, IDA will try to resolve 'menupath' as it would for 'attach_action_to_menu()' and, if found, add the new menu like so:
// The new 'My menu' submenu will appear in the 'Comments' submenu // before the 'Enter comment..." command create_menu("(...)", "My menu", "Edit/Comments/Enter comment...");
or
// The new 'My menu' submenu will appear at the end of the // 'Comments' submenu. create_menu("(...)", "My menu", "Edit/Comments/");
If the above fails, the new menu will be appended to the menubar.
create_menu(name, label, menupath=None) -> bool
name: name of menu (must be unique) (C++: const char *)
label: label of menu (C++: const char *)
menupath: where should the menu be inserted (C++: const char *)
return: success
def create_toolbar(*args) ‑> bool
Create a toolbar with the given name, label and optional position
create_toolbar(name, label, before=None, flags=0) -> bool
name: name of toolbar (must be unique) (C++: const char *)
label: label of toolbar (C++: const char *)
before: if non-NULL, the toolbar before which the new toolbar
will be inserted (C++: const char *)
flags: a combination of create toolbar flags , to determine
toolbar position (C++: int)
return: success
def custom_viewer_jump(*args) ‑> bool
Append 'loc' to the viewer's history, and cause the viewer to display it.
custom_viewer_jump(v, loc, flags=0) -> bool
v: (TWidget *) (C++: TWidget *)
loc: (const lochist_entry_t &) (C++: const lochist_entry_t
&)
flags: (uint32) or'ed combination of CVNF_* values (C++:
uint32)
return: success
def del_hotkey(*args) ‑> bool
del_hotkey(pyctx) -> bool
Deletes a previously registered function hotkey
ctx: Hotkey context previously returned by add_hotkey()
return: Boolean.
def del_idc_hotkey(*args) ‑> bool
del_idc_hotkey(hotkey) -> bool
hotkey (C++: const char *)
def delete_menu(*args) ‑> bool
Delete an existing menu
delete_menu(name) -> bool
name: name of menu (C++: const char *)
return: success
def delete_toolbar(*args) ‑> bool
Delete an existing toolbar
delete_toolbar(name) -> bool
name: name of toolbar (C++: const char *)
return: success
def detach_action_from_menu(*args) ‑> bool
Detach an action from the menu ( 'ui_detach_action_from_menu' ).
detach_action_from_menu(menupath, name) -> bool
menupath: path to the menu item (C++: const char *)
name: the action name (C++: const char *)
return: success
def detach_action_from_popup(*args) ‑> bool
Remove a previously-registered action, from the list of 'permanent' context menu actions for this widget ( 'ui_detach_action_from_popup' ). This only makes sense if the action has been added to 'widget's list of permanent popup actions by calling attach_action_to_popup in 'permanent' mode.
detach_action_from_popup(widget, name) -> bool
widget: target widget (C++: TWidget *)
name: action name (C++: const char *)
def detach_action_from_toolbar(*args) ‑> bool
Detach an action from the toolbar ( 'ui_detach_action_from_toolbar' ).
detach_action_from_toolbar(toolbar_name, name) -> bool
toolbar_name: the name of the toolbar (C++: const char *)
name: the action name (C++: const char *)
return: success
Display copyright warning ( 'ui_copywarn' ).
def display_widget(*args) ‑> void
Display a widget, dock it if not done before
display_widget(widget, options, dest_ctrl=None)
widget: widget to display (C++: TWidget *)
options: Widget open flags (C++: uint32)
dest_ctrl: where to dock: if NULL or invalid then use the
active docker if there is not create a new tab relative to current active tab (C++: const char *)
def ea2str(*args) ‑> size_t
Convert linear address to UTF-8 string.
ea2str(ea) -> str
ea (C++: ea_t)
def ea_viewer_history_push_and_jump(*args) ‑> bool
Push current location in the history and jump to the given location ( 'ui_ea_viewer_history_push_and_jump' ). This will jump in the given ea viewer and also in other synchronized views.
ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool
v: ea viewer (C++: TWidget *)
ea: jump destination (C++: ea_t)
x: coords on screen (C++: int)
y: coords on screen (C++: int)
lnnum: desired line number of given address (C++: int)
def enable_chooser_item_attrs(*args) ‑> bool
Enable item-specific attributes for chooser items ( 'ui_enable_chooser_item_attrs' ). For example: color list items differently depending on a criterium.If enabled, the chooser will generate ui_get_chooser_item_attrsevents that can be intercepted by a plugin to modify the item attributes.This event is generated only in the GUI version of IDA.Specifying 'CH_ATTRS' bit at the chooser creation time has the same effect.
enable_chooser_item_attrs(chooser_caption, enable) -> bool
chooser_caption (C++: const char *)
enable (C++: bool)
return: success
def error(*args) ‑> void
error(format)
Display a fatal message in a message box and quit IDA
format: message to print
def execute_sync(*args) ‑> int
execute_sync(py_callable, reqf) -> int
Executes a function in the context of the main thread. If the current thread not the main thread, then the call is queued and executed afterwards.
callable: A python callable object, must return an integer value
reqf: one of MFF_ flags
return: -1 or the return value of the callable
def execute_ui_requests(*args) ‑> bool
execute_ui_requests(py_list) -> bool
Inserts a list of callables into the UI message processing queue. When the UI is ready it will call one callable. A callable can request to be called more than once if it returns True.
callable_list: A list of python callable objects.
note: A callable should return True if it wants to be called more than once.
return: Boolean. False if the list contains a non callabale item
def find_widget(*args) ‑> TWidget *
Find widget with the specified caption (only gui version) ( 'ui_find_widget' ). NB: this callback works only with the tabbed widgets!
find_widget(caption) -> TWidget *
caption: title of tab, or window title if widget is not tabbed
(C++: const char *)
return: pointer to the TWidget, NULL if none is found
def formchgcbfa_close(*args) ‑> void
formchgcbfa_close(p_fa, close_normally)
p_fa: size_t close_normally: int
def formchgcbfa_enable_field(*args) ‑> bool
formchgcbfa_enable_field(p_fa, fid, enable) -> bool
p_fa: size_t fid: int enable: bool
def formchgcbfa_get_field_value(*args) ‑> PyObject *
formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject *
p_fa: size_t fid: int ft: int sz: size_t
def formchgcbfa_get_focused_field(*args) ‑> int
formchgcbfa_get_focused_field(p_fa) -> int
p_fa: size_t
def formchgcbfa_move_field(*args) ‑> bool
formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool
p_fa: size_t fid: int x: int y: int w: int h: int
def formchgcbfa_refresh_field(*args) ‑> void
formchgcbfa_refresh_field(p_fa, fid)
p_fa: size_t fid: int
def formchgcbfa_set_field_value(*args) ‑> bool
formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool
p_fa: size_t fid: int ft: int py_val: PyObject *
def formchgcbfa_set_focused_field(*args) ‑> bool
formchgcbfa_set_focused_field(p_fa, fid) -> bool
p_fa: size_t fid: int
def formchgcbfa_show_field(*args) ‑> bool
formchgcbfa_show_field(p_fa, fid, show) -> bool
p_fa: size_t fid: int show: bool
def free_custom_icon(*args) ‑> void
free_custom_icon(icon_id)
Frees an icon loaded with load_custom_icon()
def gen_disasm_text(*args) ‑> void
Generate disassembly text for a range.
gen_disasm_text(text, ea1, ea2, truncate_lines)
text: result (C++: text_t &)
ea1: start address (C++: ea_t)
ea2: end address (C++: ea_t)
truncate_lines: (on idainfo::margin ) (C++: bool)
def get_action_checkable(*args) ‑> bool *
Get an action's checkability ( 'ui_get_action_attr' ).
get_action_checkable(name) -> bool
name: the action name (C++: const char *)
return: success
def get_action_checked(*args) ‑> bool *
Get an action's checked state ( 'ui_get_action_attr' ).
get_action_checked(name) -> bool
name: the action name (C++: const char *)
return: success
def get_action_icon(*args) ‑> int *
Get an action's icon ( 'ui_get_action_attr' ).
get_action_icon(name) -> bool
name: the action name (C++: const char *)
return: success
def get_action_label(*args) ‑> qstring *
Get an action's label ( 'ui_get_action_attr' ).
get_action_label(name) -> str
name: the action name (C++: const char *)
return: success
def get_action_shortcut(*args) ‑> qstring *
Get an action's shortcut ( 'ui_get_action_attr' ).
get_action_shortcut(name) -> str
name: the action name (C++: const char *)
return: success
def get_action_state(*args) ‑> action_state_t *
Get an action's state ( 'ui_get_action_attr' ).
get_action_state(name) -> bool
name: the action name (C++: const char *)
return: success
def get_action_tooltip(*args) ‑> qstring *
Get an action's tooltip ( 'ui_get_action_attr' ).
get_action_tooltip(name) -> str
name: the action name (C++: const char *)
return: success
def get_action_visibility(*args) ‑> bool *
Get an action's visibility ( 'ui_get_action_attr' ).
get_action_visibility(name) -> bool
name: the action name (C++: const char *)
return: success
def get_active_modal_widget(*args) ‑> TWidget *
Get the current, active modal TWidget instance. Note that in this context, the "wait dialog" is not considered: this function will return NULL even if it is currently shown.
def get_addon_info(*args) ‑> bool
Get info about a registered addon with a given product code. info->cb must be valid! NB: all pointers are invalidated by next call to register_addon or get_addon_info
get_addon_info(id, info) -> bool
id (C++: const char *)
info (C++: addon_info_t *)
return: false if not found
def get_addon_info_idx(*args) ‑> bool
Get info about a registered addon with specific index. info->cb must be valid! NB: all pointers are invalidated by next call to register_addon or get_addon_info
get_addon_info_idx(index, info) -> bool
index (C++: int)
info (C++: addon_info_t *)
return: false if index is out of range
def get_chooser_data(*args) ‑> PyObject *
Get the text corresponding to the index N in the chooser data. Use -1 to get the header.
get_chooser_data(chooser_caption, n) -> PyObject *
chooser_caption (C++: const char *)
n (C++: int)
def get_chooser_obj(*args) ‑> void *
Get the underlying object of the specified chooser ( 'ui_get_chooser_obj' ).This attemps to find the choser by its title and, if found, returns the result of calling its 'chooser_base_t::get_chooser_obj()' method.This is object is chooser- specific.
get_chooser_obj(chooser_caption) -> void *
chooser_caption (C++: const char *)
return: the object that was used to create the chooser
def get_curline(*args) ‑> char const *
Get current line from the disassemble window ( 'ui_get_curline' ).
def get_current_viewer(*args) ‑> TWidget *
Get current ida viewer (idaview or custom viewer) ( 'ui_get_current_viewer' )
def get_current_widget(*args) ‑> TWidget *
Get a pointer to the current widget ( 'ui_get_current_widget' ).
def get_cursor(*args) ‑> int *, int *
Get the cursor position on the screen ( 'ui_get_cursor' ).coordinates are 0-based
def get_custom_viewer_curline(*args) ‑> char const *
Get current line of custom viewer ( 'ui_get_custom_viewer_curline' ). The returned line contains color codes
get_custom_viewer_curline(custom_viewer, mouse) -> char const *
custom_viewer: view (C++: TWidget *)
mouse: mouse position (otherwise cursor position) (C++: bool)
return: pointer to contents of current line
def get_custom_viewer_location(*args) ‑> bool
Get the current location in a custom viewer ( 'ui_get_custom_viewer_location' ).
get_custom_viewer_location(out, custom_viewer, mouse=False) -> bool
out (C++: lochist_entry_t *)
custom_viewer (C++: TWidget *)
mouse (C++: bool)
def get_custom_viewer_place(*args) ‑> int *, int *
Get current place in a custom viewer ( 'ui_get_curplace' ).See also the more complete 'get_custom_viewer_location()'
get_custom_viewer_place(custom_viewer, mouse) -> place_t
custom_viewer: view (C++: TWidget *)
mouse: mouse position (otherwise cursor position) (C++: bool)
def get_ea_viewer_history_info(*args) ‑> bool
Get information about what's in the history ( 'ui_ea_viewer_history_info' ).
get_ea_viewer_history_info(nback, nfwd, v) -> bool
nback: number of available back steps (C++: int *)
nfwd: number of available forward steps (C++: int *)
v: ea viewer (C++: TWidget *)
retval: false - if the given ea viewer does not exist
retval: true - otherwise
def get_hexdump_ea(*args) ‑> ea_t
Get the current address in a hex view.
get_hexdump_ea(hexdump_num) -> ea_t
hexdump_num: number of hexview window (C++: int)
def get_highlight(*args) ‑> PyObject *
get_highlight(v) -> PyObject *
Returns the currently highlighted identifier and flags
return: a tuple (text, flags), or None if nothing
is highlighted or in case of error.
def get_kernel_version(*args) ‑> size_t
Get IDA kernel version (in a string like "5.1").
def get_key_code(*args) ‑> ushort
Get keyboard key code by its name ( 'ui_get_key_code' )
get_key_code(keyname) -> ushort
keyname (C++: const char *)
def get_navband_ea(*args) ‑> ea_t
Translate the pixel position on the navigation band, into an address.
get_navband_ea(pixel) -> ea_t
pixel (C++: int)
def get_navband_pixel(*args) ‑> bool *
get_navband_pixel(ea) -> int
Maps an address, onto a pixel coordinate within the navband
ea: The address to map
return: a list [pixel, is_vertical]
def get_opnum(*args) ‑> int
Get current operand number, -1 means no operand ( 'ui_get_opnum' )
def get_output_curline(*args) ‑> qstring *
Get current line of output window ( 'ui_get_output_curline' ).
get_output_curline(mouse) -> str
mouse: current for mouse pointer? (C++: bool)
return: false if output contains no text
def get_output_cursor(*args) ‑> int *, int *
Get coordinates of the output window's cursor ( 'ui_get_output_cursor' ).coordinates are 0-basedthis function will succeed even if the output window is not visible
def get_output_selected_text(*args) ‑> qstring *
Returns selected text from output window ( 'ui_get_output_selected_text' ).
def get_place_class(*args) ‑> place_t const *
Get information about a previously-registered 'place_t' class. See also 'register_place_class()' .
get_place_class(out_flags, out_sdk_version, id) -> place_t
out_flags: output flags (can be NULL) (C++: int *)
out_sdk_version: sdk version the place was created with (can be
NULL) (C++: int *)
id: place class ID (C++: int)
return: the place_t template, or NULL if not found
def get_place_class_id(*args) ‑> int
Get the place class ID for the place that has been registered as 'name'.
get_place_class_id(name) -> int
name: the class name (C++: const char *)
return: the place class ID, or -1 if not found
def get_place_class_template(*args) ‑> place_t const *
See 'get_place_class()'
get_place_class_template(id) -> place_t
id (C++: int)
def get_registered_actions(*args) ‑> PyObject *
Get a list of all currently-registered actions
def get_screen_ea(*args) ‑> ea_t
Get the address at the screen cursor ( 'ui_screenea' )
def get_synced_group(*args) ‑> synced_group_t const *
Get the group of widgets/registers this view is synchronized with
get_synced_group(w) -> synced_group_t
w: the widget (C++: const TWidget *)
return: the group of widgets/registers, or NULL
def get_tab_size(*args) ‑> int
Get the size of a tab in spaces ( 'ui_get_tab_size' ).
get_tab_size(path) -> int
path: the path of the source view for which the tab size is
requested. if NULL, the default size is returned. (C++: const char *)
def get_user_strlist_options(*args) ‑> void
get_user_strlist_options(out)
out (C++: strwinsetup_t *)
def get_view_renderer_type(*args) ‑> tcc_renderer_type_t
Get the type of renderer currently in use in the given view ( 'ui_get_renderer_type' )
get_view_renderer_type(v) -> tcc_renderer_type_t
v (C++: TWidget *)
def get_viewer_place_type(*args) ‑> tcc_place_type_t
Get the type of 'place_t' instances a viewer uses & creates ( 'ui_get_viewer_place_type' ).
get_viewer_place_type(viewer) -> tcc_place_type_t
viewer (C++: TWidget *)
def get_viewer_user_data(*args) ‑> void *
Get the user data from a custom viewer ( 'ui_get_viewer_user_data' )
get_viewer_user_data(viewer) -> void *
viewer (C++: TWidget *)
def get_widget_title(*args) ‑> qstring *
Get the TWidget's title ( 'ui_get_widget_title' ).
get_widget_title(widget) -> str
widget (C++: TWidget *)
def get_widget_type(*args) ‑> twidget_type_t
Get the type of the TWidget * ( 'ui_get_widget_type' ).
get_widget_type(widget) -> twidget_type_t
widget (C++: TWidget *)
def get_window_id(*args) ‑> void *
Get the system-specific window ID (GUI version only)
get_window_id(name=None) -> void *
name (C++: const char *)
return: the low-level window ID
def hide_wait_box(*args) ‑> void
Hide the "Please wait dialog box".
def info(*args) ‑> void
info(format)
format (C++: const char *)
def install_command_interpreter(*args) ‑> int
Install command line interpreter ( 'ui_install_cli' )
install_command_interpreter(py_obj) -> int
py_obj: PyObject *
def internal_register_place_class(*args) ‑> int
internal_register_place_class(tmplate, flags, owner, sdk_version) -> int
tmplate (C++: const place_t *)
flags (C++: int)
owner (C++: const plugin_t *)
sdk_version (C++: int)
def is_action_enabled(*args) ‑> bool
Check if the given action state is one of AST_ENABLE*.
is_action_enabled(s) -> bool
s (C++: action_state_t)
def is_chooser_widget(*args) ‑> bool
Does the given widget type specify a chooser widget?
is_chooser_widget(t) -> bool
t (C++: twidget_type_t)
def is_idaq(*args) ‑> bool
is_idaq() -> bool
Returns True or False depending if IDAPython is hosted by IDAQ
def is_idaview(*args) ‑> bool
Is the given custom view an idaview? ( 'ui_is_idaview' )
is_idaview(v) -> bool
v (C++: TWidget *)
def is_msg_inited(*args) ‑> bool
Can we use msg() functions?
def is_place_class_ea_capable(*args) ‑> bool
See 'get_place_class()'
is_place_class_ea_capable(id) -> bool
id (C++: int)
def is_refresh_requested(*args) ‑> bool
Get a refresh request state
is_refresh_requested(mask) -> bool
mask: Window refresh flags (C++: uint64)
return: the state (set or cleared)
def jumpto(*args) ‑> bool
Jump to the specified address ( 'ui_jumpto' ).
jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool
ea: destination (C++: ea_t)
opnum: -1: don't change x coord (C++: int)
uijmp_flags: Jump flags (C++: int)
return: success
jumpto(custom_viewer, place, x, y) -> bool
custom_viewer: TWidget * place: place_t * x: int y: int
return: success
def l_compare2(*args) ‑> int
l_compare2(t1, t2, ud) -> int
t1 (C++: const place_t *)
t2 (C++: const place_t *)
ud (C++: void *)
def load_custom_icon(file_name=None, data=None, format=None)
Loads a custom icon and returns an identifier that can be used with other APIs
If file_name is passed then the other two arguments are ignored.
file_name: The icon file name
data: The icon data
format: The icon data format
return: Icon id or 0 on failure.
Use free_custom_icon() to free it
def load_dbg_dbginfo(*args) ‑> bool
Load debugging information from a file.
load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool
path: path to file (C++: const char *)
li: loader input. if NULL, check DBG_NAME_KEY (C++: linput_t *)
base: loading address (C++: ea_t)
verbose: dump status to message window (C++: bool)
def lookup_key_code(*args) ‑> ushort
Get shortcut code previously created by 'ui_get_key_code' .
lookup_key_code(key, shift, is_qt) -> ushort
key: key constant (C++: int)
shift: modifiers (C++: int)
is_qt: are we using gui version? (C++: bool)
def msg(*args) ‑> PyObject *
msg(o) -> PyObject *
Display an UTF-8 string in the message window
The result of the stringification of the arguments will be treated as an UTF-8 string.
message: message to print (formatting is done in Python)
This function can be used to debug IDAPython scripts
def msg_clear(*args) ‑> void
Clear the "Output" window.
def msg_get_lines(*args) ‑> PyObject *
Retrieve the last 'count' lines from the output window, in reverse order (from most recent, to least recent)
msg_get_lines(count=-1) -> PyObject *
count: The number of lines to retrieve. -1 means: all (C++:
int)
def msg_save(*args) ‑> bool
Save the "Output" window contents into a file
msg_save(path) -> bool
path: The path of the file to save the contents into. An empty
path means that the user will be prompted for the destination and, if the file already exists, the user will be asked to confirm before overriding its contents. Upon return, 'path' will contain the path that the user chose. (C++: qstring &)
return: success
def nomem(*args) ‑> void
nomem(format)
format (C++: const char *)
def open_bookmarks_window(*args) ‑> TWidget *
Open the bookmarks window ( 'ui_open_builtin' ).
open_bookmarks_window(w) -> TWidget *
w (C++: TWidget *)
return: pointer to resulting window
def open_bpts_window(*args) ‑> TWidget *
Open the breakpoints window ( 'ui_open_builtin' ).
open_bpts_window(ea) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
return: pointer to resulting window
def open_calls_window(*args) ‑> TWidget *
Open the function calls window ( 'ui_open_builtin' ).
open_calls_window(ea) -> TWidget *
ea (C++: ea_t)
return: pointer to resulting window
def open_disasm_window(*args) ‑> TWidget *
Open a disassembly view ( 'ui_open_builtin' ).
open_disasm_window(window_title, ranges=None) -> TWidget *
window_title: title of view to open (C++: const char *)
ranges: if != NULL, then display a flow chart with the
specified ranges (C++: const rangevec_t *)
return: pointer to resulting window
def open_enums_window(*args) ‑> TWidget *
Open the enums window ( 'ui_open_builtin' ).
open_enums_window(const_id=BADADDR) -> TWidget *
const_id: index of entry to select by default (C++: tid_t)
return: pointer to resulting window
def open_exports_window(*args) ‑> TWidget *
Open the exports window ( 'ui_open_builtin' ).
open_exports_window(ea) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
return: pointer to resulting window
def open_form(*args)
def open_frame_window(*args) ‑> TWidget *
Open the frame window for the given function ( 'ui_open_builtin' ).
open_frame_window(pfn, offset) -> TWidget *
pfn: function to analyze (C++: func_t *)
offset: offset where the cursor is placed (C++: uval_t)
return: pointer to resulting window if 'pfn' is a valid function and
the window was displayed, NULL otherwise
def open_funcs_window(*args) ‑> TWidget *
Open the 'Functions' window ( 'ui_open_builtin' ).
open_funcs_window(ea) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
return: pointer to resulting window
def open_hexdump_window(*args) ‑> TWidget *
Open a hexdump view ( 'ui_open_builtin' ).
open_hexdump_window(window_title) -> TWidget *
window_title: title of view to open (C++: const char *)
return: pointer to resulting window
def open_imports_window(*args) ‑> TWidget *
Open the exports window ( 'ui_open_builtin' ).
open_imports_window(ea) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
return: pointer to resulting window
def open_loctypes_window(*args) ‑> TWidget *
Open the local types window ( 'ui_open_builtin' ).
open_loctypes_window(ordinal) -> TWidget *
ordinal: ordinal of type to select by default (C++: int)
return: pointer to resulting window
def open_modules_window(*args) ‑> TWidget *
Open the modules window ( 'ui_open_builtin' ).
def open_names_window(*args) ‑> TWidget *
Open the names window ( 'ui_open_builtin' ).
open_names_window(ea) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
return: pointer to resulting window
def open_navband_window(*args) ‑> TWidget *
Open the navigation band window ( 'ui_open_builtin' ).
open_navband_window(ea, zoom) -> TWidget *
ea: sets the address of the navband arrow (C++: ea_t)
zoom: sets the navband zoom level (C++: int)
return: pointer to resulting window
def open_notepad_window(*args) ‑> TWidget *
Open the notepad window ( 'ui_open_builtin' ).
def open_problems_window(*args) ‑> TWidget *
Open the problems window ( 'ui_open_builtin' ).
open_problems_window(ea) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
return: pointer to resulting window
def open_segments_window(*args) ‑> TWidget *
Open the segments window ( 'ui_open_builtin' ).
open_segments_window(ea) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
return: pointer to resulting window
def open_segregs_window(*args) ‑> TWidget *
Open the segment registers window ( 'ui_open_builtin' ).
open_segregs_window(ea) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
return: pointer to resulting window
def open_selectors_window(*args) ‑> TWidget *
Open the selectors window ( 'ui_open_builtin' ).
def open_signatures_window(*args) ‑> TWidget *
Open the signatures window ( 'ui_open_builtin' ).
def open_stack_window(*args) ‑> TWidget *
Open the call stack window ( 'ui_open_builtin' ).
def open_strings_window(*args) ‑> TWidget *
Open the 'Strings' window ( 'ui_open_builtin' ).
open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
selstart: only display strings that occur within this range
(C++: ea_t)
selend: only display strings that occur within this range (C++:
ea_t)
return: pointer to resulting window
def open_structs_window(*args) ‑> TWidget *
Open the structs window ( 'ui_open_builtin' ).
open_structs_window(id=BADADDR, offset=0) -> TWidget *
id: index of entry to select by default (C++: tid_t)
offset: offset where the cursor is placed (C++: uval_t)
return: pointer to resulting window
def open_threads_window(*args) ‑> TWidget *
Open the threads window ( 'ui_open_builtin' ).
def open_tils_window(*args) ‑> TWidget *
Open the type libraries window ( 'ui_open_builtin' ).
def open_trace_window(*args) ‑> TWidget *
Open the tracing window ( 'ui_open_builtin' ).
def open_url(*args) ‑> void
Open the given url ( 'ui_open_url' )
open_url(url)
url (C++: const char *)
def open_xrefs_window(*args) ‑> TWidget *
Open the cross references window ( 'ui_open_builtin' ).
open_xrefs_window(ea) -> TWidget *
ea: index of entry to select by default (C++: ea_t)
return: pointer to resulting window
def place_t_as_enumplace_t(*args) ‑> enumplace_t *
place_t_as_enumplace_t(p) -> enumplace_t
p: place_t *
def place_t_as_idaplace_t(*args) ‑> idaplace_t *
place_t_as_idaplace_t(p) -> idaplace_t
p: place_t *
def place_t_as_simpleline_place_t(*args) ‑> simpleline_place_t *
place_t_as_simpleline_place_t(p) -> simpleline_place_t
p: place_t *
def place_t_as_structplace_t(*args) ‑> structplace_t *
place_t_as_structplace_t(p) -> structplace_t
p: place_t *
def plgform_close(*args) ‑> void
plgform_close(py_link, options)
py_link: PyObject * options: int
def plgform_get_widget(*args) ‑> TWidget *
plgform_get_widget(py_link) -> TWidget *
py_link: PyObject *
def plgform_new(*args) ‑> PyObject *
plgform_new() -> PyObject *
def plgform_show(*args) ‑> bool
plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool
py_link: PyObject * py_obj: PyObject * caption: char const * options: int
def process_ui_action(*args) ‑> bool
process_ui_action(name, flags=0) -> bool
Invokes an IDA UI action by name
name: action name
return: Boolean
def py_chooser_base_t_get_row(*args) ‑> PyObject *
py_chooser_base_t_get_row(chobj, n) -> PyObject *
chobj: chooser_base_t const * n: size_t
def py_get_ask_form(*args) ‑> size_t
py_get_ask_form() -> size_t
def py_get_open_form(*args) ‑> size_t
py_get_open_form() -> size_t
def py_load_custom_icon_data(*args) ‑> int
py_load_custom_icon_data(data, format) -> int
data: PyObject * format: char const *
def py_load_custom_icon_fn(*args) ‑> int
py_load_custom_icon_fn(filename) -> int
filename: char const *
def py_register_compiled_form(*args) ‑> void
py_register_compiled_form(py_form)
py_form: PyObject *
def py_ss_restore_callback(*args) ‑> void
py_ss_restore_callback(err_msg, userdata)
err_msg: char const * userdata: void *
def py_unregister_compiled_form(*args) ‑> void
py_unregister_compiled_form(py_form)
py_form: PyObject *
def pyidag_bind(*args) ‑> bool
pyidag_bind(_self) -> bool
self: PyObject *
def pyidag_unbind(*args) ‑> bool
pyidag_unbind(_self) -> bool
self: PyObject *
def pyscv_add_line(*args) ‑> bool
pyscv_add_line(py_this, py_sl) -> bool
py_this: PyObject * py_sl: PyObject *
def pyscv_clear_lines(*args) ‑> PyObject *
pyscv_clear_lines(py_this) -> PyObject *
py_this: PyObject *
def pyscv_close(*args) ‑> void
pyscv_close(py_this)
py_this: PyObject *
def pyscv_count(*args) ‑> size_t
pyscv_count(py_this) -> size_t
py_this: PyObject *
def pyscv_del_line(*args) ‑> bool
pyscv_del_line(py_this, nline) -> bool
py_this: PyObject * nline: size_t
def pyscv_edit_line(*args) ‑> bool
pyscv_edit_line(py_this, nline, py_sl) -> bool
py_this: PyObject * nline: size_t py_sl: PyObject *
def pyscv_get_current_line(*args) ‑> PyObject *
pyscv_get_current_line(py_this, mouse, notags) -> PyObject *
py_this: PyObject * mouse: bool notags: bool
def pyscv_get_current_word(*args) ‑> PyObject *
pyscv_get_current_word(py_this, mouse) -> PyObject *
py_this: PyObject * mouse: bool
def pyscv_get_line(*args) ‑> PyObject *
pyscv_get_line(py_this, nline) -> PyObject *
py_this: PyObject * nline: size_t
def pyscv_get_pos(*args) ‑> PyObject *
pyscv_get_pos(py_this, mouse) -> PyObject *
py_this: PyObject * mouse: bool
def pyscv_get_selection(*args) ‑> PyObject *
pyscv_get_selection(py_this) -> PyObject *
py_this: PyObject *
def pyscv_get_widget(*args) ‑> TWidget *
pyscv_get_widget(py_this) -> TWidget *
py_this: PyObject *
def pyscv_init(*args) ‑> PyObject *
pyscv_init(py_link, title) -> PyObject *
py_link: PyObject * title: char const *
def pyscv_insert_line(*args) ‑> bool
pyscv_insert_line(py_this, nline, py_sl) -> bool
py_this: PyObject * nline: size_t py_sl: PyObject *
def pyscv_is_focused(*args) ‑> bool
pyscv_is_focused(py_this) -> bool
py_this: PyObject *
def pyscv_jumpto(*args) ‑> bool
pyscv_jumpto(py_this, ln, x, y) -> bool
py_this: PyObject * ln: size_t x: int y: int
def pyscv_patch_line(*args) ‑> bool
pyscv_patch_line(py_this, nline, offs, value) -> bool
py_this: PyObject * nline: size_t offs: size_t value: int
def pyscv_refresh(*args) ‑> bool
pyscv_refresh(py_this) -> bool
py_this: PyObject *
def pyscv_show(*args) ‑> bool
pyscv_show(py_this) -> bool
py_this: PyObject *
def qcleanline(*args) ‑> qstring *
Performs some cleanup operations to a line.
qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str
cmt_char: character that denotes the start of a comment: the
entire text is removed if the line begins with this character (ignoring leading spaces) all text after (and including) this character is removed if flag CLNL_FINDCMT is set (C++: char)
flags: a combination of line cleanup flags . defaults to
CLNL_TRIM (C++: uint32)
return: length of line
def read_range_selection(*args) ‑> ea_t *, ea_t *
Get the address range for the selected range boundaries, this is the convenient function for 'read_selection()'
read_range_selection(v) -> bool
v: view, NULL means the last active window containing addresses
(C++: TWidget *)
retval: 0 - no range is selected
retval: 1 - ok, start ea and end ea are filled
def read_selection(*args) ‑> bool
read_selection(v, p1, p2) -> bool
Read the user selection, and store its information in p0 (from) and p1 (to).
This can be used as follows:
>>> p0 = idaapi.twinpos_t() p1 = idaapi.twinpos_t() view = idaapi.get_current_viewer() idaapi.read_selection(view, p0, p1)
At that point, p0 and p1 hold information for the selection. But, the 'at' property of p0 and p1 is not properly typed. To specialize it, call #place() on it, passing it the view they were retrieved from. Like so:
>>> place0 = p0.place(view) place1 = p1.place(view)
This will effectively "cast" the place into a specialized type, holding proper information, depending on the view type (e.g., disassembly, structures, enums, ...)
view: The view to retrieve the selection for.
p0: Storage for the "from" part of the selection.
p1: Storage for the "to" part of the selection.
return: a bool value indicating success.
def refresh_chooser(*args) ‑> bool
Mark a non-modal custom chooser for a refresh ( 'ui_refresh_chooser' ).
refresh_chooser(title) -> bool
title: title of chooser (C++: const char *)
return: success
def refresh_choosers(*args) ‑> void
refresh_choosers()
def refresh_custom_viewer(*args) ‑> void
Refresh custom ida viewer ( 'ui_refresh_custom_viewer' )
refresh_custom_viewer(custom_viewer)
custom_viewer (C++: TWidget *)
def refresh_idaview(*args) ‑> void
Refresh marked windows ( 'ui_refreshmarked' )
def refresh_idaview_anyway(*args) ‑> void
Refresh all disassembly views ( 'ui_refresh' ), forces an immediate refresh. Please consider 'request_refresh()' instead
def refresh_navband(*args) ‑> void
Refresh navigation band if changed ( 'ui_refresh_navband' ).
refresh_navband(force)
force: refresh regardless (C++: bool)
def register_action(*args) ‑> bool
Create a new action ( 'ui_register_action' ). After an action has been created, it is possible to attach it to menu items ( 'attach_action_to_menu()' ), or to popup menus ( 'attach_action_to_popup()' ).Because the actions will need to call the handler's activate() and update() methods at any time, you shouldn't build your action handler on the stack.Please see the SDK's "ht_view" plugin for an example how to register actions.
register_action(desc) -> bool
desc: action to register (C++: const action_desc_t &)
return: success
def register_addon(*args) ‑> int
Register an add-on. Show its info in the About box. For plugins, should be called from init() function (repeated calls with the same product code overwrite previous entries) returns: index of the add-on in the list, or -1 on error
register_addon(info) -> int
info (C++: const addon_info_t *)
def register_and_attach_to_menu(*args) ‑> bool
Helper.You are not encouraged to use this, as it mixes flags for both 'register_action()' , and 'attach_action_to_menu()' .The only reason for its existence is to make it simpler to port existing plugins to the new actions API.
register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool
menupath (C++: const char *)
name (C++: const char *)
label (C++: const char *)
shortcut (C++: const char *)
flags (C++: int)
handler (C++: action_handler_t *)
owner (C++: void *)
action_desc_t_flags (C++: int)
def register_timer(*args) ‑> PyObject *
register_timer(interval, py_callback) -> PyObject *
Register a timer
interval: Interval in milliseconds
callback: A Python callable that takes no parameters and returns an integer.
The callback may return: -1 : to unregister the timer >= 0 : the new or same timer interval
return: None or a timer object
def remove_command_interpreter(*args) ‑> void
Remove command line interpreter ( 'ui_install_cli' )
remove_command_interpreter(cli_idx)
cli_idx: int
def repaint_custom_viewer(*args) ‑> void
Repaint the given widget immediately ( 'ui_repaint_qwidget' )
repaint_custom_viewer(custom_viewer)
custom_viewer (C++: TWidget *)
def replace_wait_box(*args) ‑> void
Replace the label of "Please wait dialog box".
replace_wait_box(format)
format (C++: const char *)
def request_refresh(*args) ‑> void
Request a refresh of a builtin window.
request_refresh(mask, cnd=True)
mask: Window refresh flags (C++: uint64)
cnd: set if true or clear flag otherwise (C++: bool)
def restore_database_snapshot(*args) ‑> PyObject *
Restore a database snapshot. Note: This call is asynchronous. When it is completed, the callback will be triggered.
restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject *
ss: snapshot instance (see build_snapshot_tree() ) (C++: const
snapshot_t *)
pyfunc_or_none: PyObject * pytuple_or_none: PyObject *
return: false if restoration could not be started (snapshot file was
not found). If the returned value is True then check if the operation succeeded from the callback.
def set_cancelled(*args) ‑> void
Set "Cancelled" flag ( 'ui_set_cancelled' )
def set_code_viewer_handler(*args) ‑> void *
Set a handler for a code viewer event ( 'ui_set_custom_viewer_handler' ).
set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void *
code_viewer: the code viewer (C++: TWidget *)
handler_id: one of CDVH_ in custom_viewer_handler_id_t (C++:
custom_viewer_handler_id_t)
handler_or_data: can be a handler or data. see examples in
Functions: custom viewer handlers (C++: void *)
return: old value of the handler or data
def set_code_viewer_is_source(*args) ‑> bool
Specify that the given code viewer is used to display source code ( 'ui_set_custom_viewer_handler' ).
set_code_viewer_is_source(code_viewer) -> bool
code_viewer (C++: TWidget *)
def set_code_viewer_line_handlers(*args) ‑> void
Set handlers for code viewer line events. Any of these handlers may be NULL
set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler)
code_viewer (C++: TWidget *)
click_handler (C++: code_viewer_lines_click_t *)
popup_handler (C++: code_viewer_lines_click_t *)
dblclick_handler (C++: code_viewer_lines_click_t *)
drawicon_handler (C++: code_viewer_lines_icon_t *)
linenum_handler (C++: code_viewer_lines_linenum_t *)
def set_code_viewer_lines_alignment(*args) ‑> bool
Set alignment for lines in a code viewer ( 'ui_set_custom_viewer_handler' ).
set_code_viewer_lines_alignment(code_viewer, align) -> bool
code_viewer (C++: TWidget *)
align (C++: int)
def set_code_viewer_lines_icon_margin(*args) ‑> bool
Set space allowed for icons in the margin of a code viewer ( 'ui_set_custom_viewer_handler' ).
set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool
code_viewer (C++: TWidget *)
margin (C++: int)
def set_code_viewer_lines_radix(*args) ‑> bool
Set radix for values displayed in a code viewer ( 'ui_set_custom_viewer_handler' ).
set_code_viewer_lines_radix(code_viewer, radix) -> bool
code_viewer (C++: TWidget *)
radix (C++: int)
def set_code_viewer_user_data(*args) ‑> bool
Set the user data on a code viewer ( 'ui_set_custom_viewer_handler' ).
set_code_viewer_user_data(code_viewer, ud) -> bool
code_viewer (C++: TWidget *)
ud (C++: void *)
def set_custom_viewer_qt_aware(*args) ‑> bool
Allow the given viewer to interpret Qt events ( 'ui_set_custom_viewer_handler' )
set_custom_viewer_qt_aware(custom_viewer) -> bool
custom_viewer (C++: TWidget *)
def set_dock_pos(*args) ‑> bool
set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool
Sets the dock orientation of a window relatively to another window.
src: Source docking control
dest: Destination docking control
orient: One of DOR_XXXX constants
left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows
return: Boolean
Example:
set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window
def set_highlight(*args) ‑> bool
Set the highlighted identifier in the viewer ( 'ui_set_highlight' ).
set_highlight(viewer, str, flags) -> bool
viewer: the viewer (C++: TWidget *)
str: the text to match, or NULL to remove current (C++: const
char *)
flags: combination of HIF_... bits (see set_highlightr flags )
(C++: int)
return: false if an error occurred
def set_nav_colorizer(*args) ‑> PyObject *
set_nav_colorizer(new_py_colorizer) -> PyObject *
Set a new colorizer for the navigation band.
The 'callback' is a function of 2 arguments:
  • ea (the EA to colorize for)
  • nbytes (the number of bytes at that EA)
and must return a 'long' value.
The previous colorizer is returned, allowing the new 'callback' to use 'call_nav_colorizer' with it.
Note that the previous colorizer is returned only the first time set_nav_colorizer() is called: due to the way the colorizers API is defined in C, it is impossible to chain more than 2 colorizers in IDAPython: the original, IDA-provided colorizer, and a user-provided one.
Example: colorizer inverting the color provided by the IDA colorizer:
def my_colorizer(ea, nbytes):
global ida_colorizer orig = idaapi.call_nav_colorizer(ida_colorizer, ea, nbytes) return long(~orig)
ida_colorizer = idaapi.set_nav_colorizer(my_colorizer)
def set_view_renderer_type(*args) ‑> void
Set the type of renderer to use in a view ( 'ui_set_renderer_type' )
set_view_renderer_type(v, rt)
v (C++: TWidget *)
rt (C++: tcc_renderer_type_t)
def show_wait_box(*args) ‑> void
Display a dialog box with "Please wait...". If the text message starts with "HIDECANCEL\n", the cancel buttonwon't be displayed in the dialog box and you don't need to checkfor cancellations with 'user_cancelled()' . Plugins must call 'hide_wait_box()' to close the dialog box, otherwise the user interface will be disabled.Note that, if the wait dialog is already visible, 'show_wait_box()' will1) push the currently-displayed text on a stack2) display the new textThen, when 'hide_wait_box()' is called, if that stack isn't empty its toplabel will be popped and restored in the wait dialog.This implies that a plugin should call 'hide_wait_box()' exactly as manytimes as it called 'show_wait_box()' , or the wait dialog might remainvisible and block the UI.Also, in case the plugin knows the wait dialog is currently displayed,alternatively it can call 'replace_wait_box()' , to replace the text of thedialog without pushing the currently- displayed text on the stack.
show_wait_box(message)
message: char const *
def str2ea(*args) ‑> ea_t
str2ea(str, screenEA=BADADDR) -> ea_t
Converts a string express to EA. The expression evaluator may be called as well.
return: BADADDR or address value
def strarray(*args) ‑> char const *
Find a line with the specified code in the 'strarray_t' array. If the last element of the array has code==0 then it is considered as the default entry.If no default entry exists and the code is not found, 'strarray()' returns "".
strarray(array, array_size, code) -> char const *
array (C++: const strarray_t *)
array_size (C++: size_t)
code (C++: int)
def sync_sources(*args) ‑> bool
[Un]synchronize sources
sync_sources(what, _with, sync) -> bool
what (C++: const sync_source_t &)
_with (C++: const sync_source_t &)
sync (C++: bool)
return: success
def take_database_snapshot(*args) ‑> PyObject *
Take a database snapshot ( 'ui_take_database_snapshot' ).
take_database_snapshot(ss) -> PyObject *
ss: in/out parameter. in: description, flags out: filename,
id (C++: snapshot_t *)
return: success
def textctrl_info_t_assign(*args) ‑> bool
textctrl_info_t_assign(_self, other) -> bool
self: PyObject * other: PyObject *
def textctrl_info_t_create(*args) ‑> PyObject *
textctrl_info_t_create() -> PyObject *
def textctrl_info_t_destroy(*args) ‑> bool
textctrl_info_t_destroy(py_obj) -> bool
py_obj: PyObject *
textctrl_info_t_get_clink(_self) -> textctrl_info_t *
self: PyObject *
textctrl_info_t_get_clink_ptr(_self) -> PyObject *
self: PyObject *
def textctrl_info_t_get_flags(*args) ‑> unsigned int
textctrl_info_t_get_flags(_self) -> unsigned int
self: PyObject *
def textctrl_info_t_get_tabsize(*args) ‑> unsigned int
textctrl_info_t_get_tabsize(_self) -> unsigned int
self: PyObject *
def textctrl_info_t_get_text(*args) ‑> char const *
textctrl_info_t_get_text(_self) -> char const *
self: PyObject *
def textctrl_info_t_set_flags(*args) ‑> bool
textctrl_info_t_set_flags(_self, flags) -> bool
self: PyObject * flags: unsigned int
def textctrl_info_t_set_tabsize(*args) ‑> bool
textctrl_info_t_set_tabsize(_self, tabsize) -> bool
self: PyObject * tabsize: unsigned int
def textctrl_info_t_set_text(*args) ‑> bool
textctrl_info_t_set_text(_self, s) -> bool
self: PyObject * s: char const *
def ui_load_new_file(*args) ‑> bool
Display a load file dialog and load file ( 'ui_load_file' ).
ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool
temp_file: name of the file with the extracted archive member.
(C++: qstring *)
filename: the name of input file as is, library or archive name
(C++: qstring *)
pli: loader input source, may be changed to point to temp_file
(C++: linput_t **)
neflags: combination of NEF_... bits (see Load file flags )
(C++: ushort)
ploaders: list of loaders which accept file, may be changed for
loaders of temp_file (C++: load_info_t **)
retval: true - file was successfully loaded
retval: false - otherwise
def ui_run_debugger(*args) ‑> bool
Load a debugger plugin and run the specified program ( 'ui_run_dbg' ).
ui_run_debugger(dbgopts, exename, argc, argv) -> bool
dbgopts: value of the -r command line switch (C++: const char
*)
exename: name of the file to run (C++: const char *)
argc: number of arguments for the executable (C++: int)
argv: argument vector (C++: const char *const *)
return: success
def unmark_selection(*args) ‑> void
Unmark selection ( 'ui_unmarksel' )
def unregister_action(*args) ‑> bool
Delete a previously-registered action ( 'ui_unregister_action' ).
unregister_action(name) -> bool
name: name of action (C++: const char *)
return: success
def unregister_timer(*args) ‑> bool
unregister_timer(py_timerctx) -> bool
Unregister a timer
timer_obj: a timer object previously returned by a register_timer()
return: Boolean
note: After the timer has been deleted, the timer_obj will become invalid.
def update_action_checkable(*args) ‑> bool
Update an action's checkability ( 'ui_update_action_attr' ).
update_action_checkable(name, checkable) -> bool
name: action name (C++: const char *)
checkable: new checkability (C++: bool)
return: success
def update_action_checked(*args) ‑> bool
Update an action's checked state ( 'ui_update_action_attr' ).
update_action_checked(name, checked) -> bool
name: action name (C++: const char *)
checked: new checked state (C++: bool)
return: success
def update_action_icon(*args) ‑> bool
Update an action's icon ( 'ui_update_action_attr' ).
update_action_icon(name, icon) -> bool
name: action name (C++: const char *)
icon: new icon id (C++: int)
return: success
def update_action_label(*args) ‑> bool
Update an action's label ( 'ui_update_action_attr' ).
update_action_label(name, label) -> bool
name: action name (C++: const char *)
label: new label (C++: const char *)
return: success
def update_action_shortcut(*args) ‑> bool
Update an action's shortcut ( 'ui_update_action_attr' ).
update_action_shortcut(name, shortcut) -> bool
name: action name (C++: const char *)
shortcut: new shortcut (C++: const char *)
return: success
def update_action_state(*args) ‑> bool
Update an action's state ( 'ui_update_action_attr' ).
update_action_state(name, state) -> bool
name: action name (C++: const char *)
state: new state (C++: action_state_t)
return: success
def update_action_tooltip(*args) ‑> bool
Update an action's tooltip ( 'ui_update_action_attr' ).
update_action_tooltip(name, tooltip) -> bool
name: action name (C++: const char *)
tooltip: new tooltip (C++: const char *)
return: success
def update_action_visibility(*args) ‑> bool
Update an action's visibility ( 'ui_update_action_attr' ).
update_action_visibility(name, visible) -> bool
name: action name (C++: const char *)
visible: new visibility (C++: bool)
return: success
def user_cancelled(*args) ‑> bool
Test the ctrl-break flag ( 'ui_test_cancelled' ).
def warning(*args) ‑> void
warning(format)
Display a message in a message box
message: message to print (formatting is done in Python)
This function can be used to debug IDAPython scripts The user will be able to hide messages if they appear twice in a row on the screen

Classes

class Choose (title, cols, flags=0, popup_names=None, icon=-1, x1=-1, y1=-1, x2=-1, y2=-1, deflt=None, embedded=False, width=None, height=None, forbidden_cb=0)
Chooser wrapper class.
Some constants are defined in this class. Please refer to kernwin.hpp for more information.
Constructs a chooser window.
title: The chooser title
cols: a list of colums; each list item is a list of two items
example: [ ["Address", 10 | Choose.CHCOL_HEX],
["Name", 30 | Choose.CHCOL_PLAIN] ]
flags: One of CH_XXXX constants
deflt: The index of the default item (0-based) for single
selection choosers or the list of indexes for multi selection chooser
popup_names: List of new captions to replace this list
["Insert", "Delete", "Edit", "Refresh"]
icon: Icon index (the icon should exist in ida resources or
an index to a custom loaded icon)
x1, y1, x2, y2: The default location (for txt-version)
embedded: Create as embedded chooser
width: Embedded chooser width
height: Embedded chooser height
forbidden_cb: Explicitly forbidden callbacks

Class variables

var ALL_CHANGED
var ALREADY_EXISTS
the non-modal chooser with the same data is already open
var CHCOL_DEC
var CHCOL_DEFHIDDEN
var CHCOL_DRAGHINT
var CHCOL_EA
var CHCOL_FNAME
var CHCOL_FORMAT
var CHCOL_HEX
var CHCOL_INODENAME
var CHCOL_PATH
var CHCOL_PLAIN
var CHOOSE_HAVE_DEL
var CHOOSE_HAVE_EDIT
var CHOOSE_HAVE_ENTER
var CHOOSE_HAVE_GETATTR
var CHOOSE_HAVE_GETICON
var CHOOSE_HAVE_INIT
var CHOOSE_HAVE_INS
var CHOOSE_HAVE_ONCLOSE
var CHOOSE_HAVE_REFRESH
var CHOOSE_HAVE_SELECT
var CH_ATTRS
var CH_BUILTIN_MASK
The chooser can provide a dirtree_t, meaning a tree-like structure can be provided to the user (instead of a flat table)
var CH_BUILTIN_SHIFT
var CH_CAN_DEL
allow to delete existing item(s)
var CH_CAN_EDIT
allow to edit existing item(s)
var CH_CAN_INS
allow to insert new items
var CH_CAN_REFRESH
allow to refresh chooser
var CH_FORCE_DEFAULT
If a non-modal chooser was already open, change selection to the given default one
var CH_HAS_DIFF
var CH_HAS_DIRTREE
The chooser can be used in a diffing/merging workflow
var CH_MODAL
Modal chooser
var CH_MULTI
Allow multi selection. Refer the description of the OnInsertLine(), OnDeleteLine(), OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to see a difference between single and multi selection callbacks.
var CH_NOBTNS
var CH_NOIDB
use the chooser even without an open database, same as x0=-2
var CH_NO_STATUS_BAR
don't show a status bar
var CH_QFLT
open with quick filter enabled and focused
var CH_QFTYP_DEFAULT
var CH_QFTYP_FUZZY
var CH_QFTYP_MASK
var CH_QFTYP_NORMAL
var CH_QFTYP_REGEX
var CH_QFTYP_SHIFT
var CH_QFTYP_WHOLE_WORDS
var CH_RENAME_IS_EDIT
triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() callback for the corresponding row.
var CH_RESTORE
restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only)
var EMPTY_CHOOSER
the chooser is initialized
var NOTHING_CHANGED
var NO_ATTR
some mandatory attribute is missing
var NO_SELECTION
there is no selected item
var SELECTION_CHANGED
var UI_Hooks_Trampoline
Proxy of C++ UI_Hooks class.

Methods

def Activate(self)
Activates a visible chooser
def AddCommand(self, caption, flags=4, menu_index=-1, icon=-1, emb=None, shortcut=None)
def Close(self)
Closes the chooser
def Embedded(self, create_chobj=False)
Creates an embedded chooser (as opposed to Show())
return: Returns 0 on success or NO_ATTR
def GetEmbSelection(self)
Deprecated. For embedded choosers, the selection is available through 'Form.EmbeddedChooserControl.selection'
def GetWidget(self)
Return the TWidget underlying this view.
return: The TWidget underlying this view, or None.
def OnPopup(self, widget, popup_handle)
def Refresh(self)
Causes the refresh callback to trigger
def Show(self, modal=False)
Activates or creates a chooser window
modal: Display as modal dialog
return: For all choosers it will return NO_ATTR if some mandatory
attribute is missing. The mandatory attributes are: flags, title, cols, OnGetSize(), OnGetLine(); For modal choosers it will return the selected item index (0-based), or NO_SELECTION if no selection, or EMPTY_CHOOSER if the OnRefresh() callback returns EMPTY_CHOOSER; For non-modal choosers it will return 0 or ALREADY_EXISTS if the chooser was already open and is active now;
def adjust_last_item(self, n)
Helper for OnDeleteLine() and OnRefresh() callbacks. They can be finished by the following line: return [Choose.ALL_CHANGED] + self.adjust_last_item(n)
param: line number of the remaining select item
return: list of selected lines numbers (one element or empty)
class CustomIDAMemo
Proxy of C++ View_Hooks class.
__init__(self, _flags=0) -> View_Hooks
_flags: uint32

Ancestors

Subclasses

Methods

def CreateGroups(self, groups_infos)
Send a request to modify the graph by creating a (set of) group(s), and perform an animation.
Each object in the 'groups_infos' list must be of the format: {
"nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group "text" : <string> # The synthetic text for that group
}
groups_infos: A list of objects that describe those groups.
return: A [<int>, <int>, ...] list of group nodes, or None (failure).
def DelNodesInfos(self, *nodes)
Delete the properties for the given node(s).
nodes: A list of node IDs
def DeleteGroups(self, groups, new_current=-1)
Send a request to delete the specified groups in the graph, and perform an animation.
groups: A list of group node numbers.
new_current: A node to focus on after the groups have been deleted
return: True on success, False otherwise.
def GetCurrentRendererType(self)
def GetNodeInfo(self, *args)
Get the properties for the given node.
ni: A node_info_t instance
node: The index of the node.
return: success
def GetWidget(self)
Return the TWidget underlying this view.
return: The TWidget underlying this view, or None.
def GetWidgetAsGraphViewer(self)
Return the graph_viewer_t underlying this view.
return: The graph_viewer_t underlying this view, or None.
def Refresh(self)
Refreshes the view. This causes the OnRefresh() to be called
def SetCurrentRendererType(self, rtype)
Set the current view's renderer.
rtype: The renderer type. Should be one of the idaapi.TCCRT_* values.
def SetGroupsVisibility(self, groups, expand, new_current=-1)
Send a request to expand/collapse the specified groups in the graph, and perform an animation.
groups: A list of group node numbers.
expand: True to expand the group, False otherwise.
new_current: A node to focus on after the groups have been expanded/collapsed.
return: True on success, False otherwise.
def SetNodeInfo(self, node_index, node_info, flags)
Set the properties for the given node.
Example usage (set second nodes's bg color to red):
inst = ... p = idaapi.node_info_t() p.bg_color = 0x00ff0000 inst.SetNodeInfo(1, p, idaapi.NIF_BG_COLOR)
node_index: The node index.
node_info: An idaapi.node_info_t instance.
flags: An OR'ed value of NIF_* values.
def SetNodesInfos(self, values)
Set the properties for the given nodes.
Example usage (set first three nodes's bg color to purple):
inst = ... p = idaapi.node_info_t() p.bg_color = 0x00ff00ff inst.SetNodesInfos({0 : p, 1 : p, 2 : p})
values: A dictionary of 'int -> node_info_t' objects.

Inherited members

class Form (form, controls)
Contruct a Form class. This class wraps around ask_form() or open_form() and provides an easier / alternative syntax for describing forms. The form control names are wrapped inside the opening and closing curly braces and the control themselves are defined and instantiated via various form controls (subclasses of Form).
form: The form string
controls: A dictionary containing the control name as a _key_ and control object as _value_

Class variables

var ButtonInput
Button control. A handler along with a 'code' (numeric value) can be associated with the button. This way one handler can handle many buttons based on the button code (or in other terms id or tag)
var ChkGroupControl
Checkbox group control class. It holds a set of checkbox controls
var ChkGroupItemControl
Checkbox group item control
var ColorInput
Color button input control
var Control
var DirInput
Directory browsing control
var DropdownListControl
Dropdown control This control allows manipulating a dropdown control
var EmbeddedChooserControl
Embedded chooser control. This control links to a Chooser2 control created with the 'embedded=True'
var FT_ADDR
Address - ea_t *
var FT_ASCII
Ascii string - char *
var FT_BIN
Binary number, 0b prefix - sval_t *
var FT_BUTTON
Button - def handler(code)
var FT_CHAR
Char value -- sval_t *
var FT_CHKGRP
var FT_CHKGRP2
var FT_COLOR
Color button - bgcolor_t *
var FT_DEC
Decimal number - sval_t *
var FT_DIR
Path to directory - char * at least QMAXPATH
var FT_DROPDOWN_LIST
Dropdown list control - Form.DropdownControl
var FT_ECHOOSER
Embedded chooser - idaapi.Choose
var FT_FILE
File browse - char * at least QMAXPATH
var FT_FORMCHG
Form change callback - formchgcb_t
var FT_HEX
Hex number - uval_t *
var FT_HTML_LABEL
HTML label to display (only for GUI version, and for dynamic labels; no input)
var FT_IDENT
Identifier - char * at least MAXNAMELEN
var FT_INT64
default base int64 - int64
var FT_MULTI_LINE_TEXT
Multi text control - textctrl_info_t
var FT_OCT
Octal number, C notation - sval_t *
var FT_RADGRP
var FT_RADGRP2
var FT_RAWHEX
Hex number, no 0x prefix - uval_t *
var FT_SEG
Segment - sel_t *
var FT_SHEX
Signed hex number - sval_t *
var FT_TYPE
Type declaration - char * at least MAXSTR
var FT_UINT64
default base uint64 - uint64
var FileInput
File Open/Save input control
var FormChangeCb
Form change handler. This can be thought of like a dialog procedure. Everytime a form action occurs, this handler will be called along with the control id. The programmer can then call various form actions accordingly:
  • EnableField
  • ShowField
  • MoveField
  • GetFieldValue
  • etc...
Special control IDs: -1 (The form is initialized) and -2 (Ok has been clicked)
var GroupControl
Base class for group controls
var GroupItemControl
Base class for group control items
var InputControl
Generic form input control. It could be numeric control, string control, directory/file browsing, etc...
var LabelControl
Base class for static label control
var MultiLineTextControl
Multi line text control. This class inherits from textctrl_info_t. Thus the attributes are also inherited This control allows manipulating a multilinetext control
var NumericArgument
Argument representing various integer arguments (ushort, uint32, uint64, etc...)
tp: One of Form.FT_XXX
var NumericInput
A composite class serving as a base numeric input control class
var NumericLabel
Numeric label control
var RadGroupControl
Radiobox group control class. It holds a set of radiobox controls
var RadGroupItemControl
Radiobox group item control
var StringArgument
Argument representing a character buffer
var StringInput
Base string input control class. This class also constructs a StringArgument
var StringLabel
String label control

Static methods

def ControlToFieldTypeIdAndSize(ctrl)
Converts a control object to a tuple containing the field id and the associated buffer size
def create_string_buffer(value, size=None)
def fieldtype_to_ctype(tp, i64=False)
Factory method returning a ctype class corresponding to the field type string

Instance variables

var controls
Dictionary of controls
var form
Form string
var modal
By default, forms are modal
var openform_flags
If non-modal, these flags will be passed to open_form. This is an OR'ed combination of the PluginForm.FORM_* values.
var title
The Form title. It will be filled when the form is compiled

Methods

def Add(self, name, ctrl, mkattr=True)
Low level function. Prefer AddControls() to this function. This function adds one control to the form.
name: Control name
ctrl: Control object
mkattr: Create control name / control object as a form attribute
def AddControls(self, controls, mkattr=True)
Adds controls from a dictionary. The dictionary key is the control name and the value is a Form.Control object
controls: The control dictionary
def Close(self, close_normally)
Close the form
close_normally:
1: form is closed normally as if the user pressed Enter 0: form is closed abnormally as if the user pressed Esc
return: None
def Compile(self)
Compiles a form and returns the form object (self) and the argument list. The form object will contain object names corresponding to the form elements
return: It will raise an exception on failure. Otherwise the return value is ignored
def CompileEx(self, form)
Low level function. Compiles (parses the form syntax and adds the control) the form string and returns the argument list to be passed the argument list to ask_form().
The form controls are wrapped inside curly braces: {ControlName}.
A special operator can be used to return the index of a given control by its name: {id:ControlName}. This is useful when you use the STARTITEM form keyword to set the initially focused control. (note that, technically, the index is not the same as the ID; that's because STARTITEM uses raw, 0-based indexes rather than control IDs to determine the focused widget.)
form: Compiles the form and returns the arguments needed to be passed to ask_form()
def Compiled(self)
Checks if the form has already been compiled
return: Boolean
def EnableField(self, ctrl, enable)
Enable or disable an input field
return: False - no such control
def Execute(self)
Displays a modal dialog containing the compiled form.
return: 1 - ok ; 0 - cancel
def FindControlById(self, id)
Finds a control instance given its id
def Free(self)
Frees all resources associated with a compiled form. Make sure you call this function when you finish using the form.
def GetControlValue(self, ctrl)
Returns the control's value depending on its type
ctrl: Form control instance
return:
  • color button, radio controls: integer
  • file/dir input, string input and string label: string
  • embedded chooser control (0-based indices of selected items): integer list
  • for multilinetext control: textctrl_info_t
  • dropdown list controls: string (when editable) or index (when readonly)
  • None: on failure
def GetFocusedField(self)
Get currently focused input field.
return: None if no field is selected otherwise the control ID
def MoveField(self, ctrl, x, y, w, h)
Move/resize an input field
return: False - no such fiel
def Open(self)
Opens a widget containing the compiled form.
def RefreshField(self, ctrl)
Refresh a field
return: False - no such control
def SetControlValue(self, ctrl, value)
Set the control's value depending on its type
ctrl: Form control instance
value:
  • embedded chooser: a 0-base indices list to select embedded chooser items
  • multilinetext: a textctrl_info_t
  • dropdown list: an integer designating the selection index if readonly
    a string designating the edit control value if not readonly
return: Boolean true on success
def SetFocusedField(self, ctrl)
Set currently focused input field
return: False - no such control
def ShowField(self, ctrl, show)
Show or hide an input field
return: False - no such control
class IDAViewWrapper (title)
Deprecated. Use View_Hooks instead.
Because the lifecycle of an IDAView is not trivial to track (e.g., a user might close, then re-open the same disassembly view), this wrapper doesn't bring anything superior to the View_Hooks: quite the contrary, as the latter is much more generic (and better maps IDA's internal model.)
__init__(self, _flags=0) -> View_Hooks
_flags: uint32

Ancestors

Methods

def Bind(self)
def Unbind(self)

Inherited members

class PluginForm
PluginForm class.
This form can be used to host additional controls. Please check the PyQt example.

Class variables

var VALID_CAPSULE_NAME
var WCLS_CLOSE_LATER
var WCLS_DELETE_LATER
This flag should be used when Close() is called from an event handler
var WCLS_DONT_SAVE_SIZE
Don't save size of the window
var WCLS_NO_CONTEXT
Don't change the current context (useful for toolbars)
var WCLS_SAVE
Save state in desktop config
var WOPN_CENTERED
var WOPN_CREATE_ONLY
var WOPN_DP_BEFORE
place widget before dst_form in the tab bar instead of after used with #WOPN_DP_INSIDE and #WOPN_DP_TAB
var WOPN_DP_BOTTOM
Dock widget below dest_ctrl
var WOPN_DP_FLOATING
When floating or in a splitter (i.e., not tabbed), use the widget's size hint to determine the best geometry (Qt only)
var WOPN_DP_INSIDE
Create a new tab bar with both widget and dest_ctrl
var WOPN_DP_INSIDE_BEFORE
var WOPN_DP_LEFT
Dock widget to the left of dest_ctrl
var WOPN_DP_RIGHT
Dock widget to the right of dest_ctrl
var WOPN_DP_SZHINT
Make widget floating
var WOPN_DP_TAB
Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar (otherwise the same as #WOPN_DP_INSIDE)
var WOPN_DP_TAB_BEFORE
var WOPN_DP_TOP
Dock widget above dest_ctrl
var WOPN_MDI
var WOPN_MENU
var WOPN_ONTOP
var WOPN_PERSIST
form will persist until explicitly closed with Close()
var WOPN_RESTORE
if the widget is the only widget in a floating area when it is closed, remember that area's geometry. The next time that widget is created as floating (i.e., WOPN_DP_FLOATING) its geometry will be restored (e.g., "Execute script"
var WOPN_TAB

Static methods

def FormToPyQtWidget(tw, ctx=<module '__main__' (built-in)>)
Convert a TWidget* to a QWidget to be used by PyQt
ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
def FormToPySideWidget(tw, ctx=<module '__main__' (built-in)>)
Use this method to convert a TWidget* to a QWidget to be used by PySide
ctx: Context. Reference to a module that already imported QtWidgets module
def QtWidgetToTWidget(w, ctx=<module '__main__' (built-in)>)
Convert a QWidget to a TWidget* to be used by IDA
ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
def TWidgetToPyQtWidget(tw, ctx=<module '__main__' (built-in)>)
Convert a TWidget* to a QWidget to be used by PyQt
ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
def TWidgetToPySideWidget(tw, ctx=<module '__main__' (built-in)>)
Use this method to convert a TWidget* to a QWidget to be used by PySide
ctx: Context. Reference to a module that already imported QtWidgets module

Methods

def Close(self, options)
Closes the form.
options: Close options (WCLS_SAVE, WCLS_NO_CONTEXT, ...)
return: None
def GetWidget(self)
Return the TWidget underlying this view.
return: The TWidget underlying this view, or None.
def OnClose(self, form)
Called when the plugin form is closed
return: None
def OnCreate(self, form)
This event is called when the plugin form is created. The programmer should populate the form when this event is triggered.
return: None
def Show(self, caption, options=0)
Creates the form if not was not created or brings to front if it was already created
caption: The form caption
options: One of PluginForm.WOPN_ constants
class UI_Hooks (*args)
Proxy of C++ UI_Hooks class.
__init__(self, _flags=0) -> UI_Hooks
_flags: uint32

Subclasses

Methods

def create_desktop_widget(self, *args) ‑> PyObject *
create a widget, to be placed in the widget tree (at desktop- creation time.)
create_desktop_widget(self, title, cfg) -> PyObject *
title (C++: const char *)
cfg (C++: const jobj_t *)
def current_widget_changed(self, *args) ‑> void
The currently-active TWidget changed.
current_widget_changed(self, widget, prev_widget)
widget (C++: TWidget *)
prev_widget (C++: TWidget *)
def database_closed(self, *args)
The database has been closed. See also processor_t::closebase, it occurs earlier. See also ui_initing_database. This is not the same as IDA exiting. If you need to perform cleanup at the exiting time, use 'qatexit()' .
def database_inited(self, *args) ‑> void
database initialization has completed. the kernel is about to run idc scripts
database_inited(self, is_new_database, idc_script)
is_new_database (C++: int)
idc_script: - may be NULL (C++: const char *)
def debugger_menu_change(self, *args) ‑> void
debugger menu modification detected
debugger_menu_change(self, enable)
enable: true: debugger menu has been added, or a different
debugger has been selected false: debugger menu will be removed (user switched to "No debugger") (C++: bool)
def desktop_applied(self, *args) ‑> void
a desktop has been applied
desktop_applied(self, name, from_idb, type)
name: the desktop name (C++: const char *)
from_idb: the desktop was stored in the IDB (false if it comes
from the registry) (C++: bool)
type: the desktop type (1-disassembly, 2-debugger, 3-merge)
(C++: int)
def destroying_plugmod(self, *args) ‑> void
The plugin object is about to be destroyed
destroying_plugmod(self, plugmod, entry)
plugmod (C++: const plugmod_t *)
entry (C++: const plugin_t *)
def destroying_procmod(self, *args) ‑> void
The processor module is about to be destroyed
destroying_procmod(self, procmod)
procmod (C++: const procmod_t *)
def finish_populating_widget_popup(self, *args) ‑> void
IDA is about to be done populating the context menu for a widget. This is your chance to 'attach_action_to_popup()' .
finish_populating_widget_popup(self, widget, popup_handle, ctx=None)
widget (C++: TWidget *)
popup_handle (C++: TPopupMenu *)
ctx (C++: const action_activation_ctx_t *)
def get_chooser_item_attrs(self, *args) ‑> void
get item-specific attributes for a chooser. This callback is generated only after enable_chooser_attrs()
get_chooser_item_attrs(self, chooser, n, attrs)
chooser (C++: const chooser_base_t *)
n (C++: size_t)
attrs (C++: chooser_item_attrs_t *)
def get_custom_viewer_hint(self, *args) ‑> PyObject *
ui wants to display a hint for a viewer (idaview or custom). Every subscriber is supposed to append the hint lines to HINT and increment IMPORTANT_LINES accordingly. Completely overwriting the existing lines in HINT is possible but not recommended. If the REG_HINTS_MARKER sequence is found in the returned hints string, it will be replaced with the contents of the "regular" hints. If the SRCDBG_HINTS_MARKER sequence is found in the returned hints string, it will be replaced with the contents of the source-level debugger-generated hints. The following keywords might appear at the beginning of the returned hints: HIGHLIGHT textwhere text will be highlighted CAPTION captioncaption for the hint widget
get_custom_viewer_hint(self, viewer, place) -> PyObject *
viewer: viewer (C++: TWidget*)
place: current position in the viewer (C++: place_t *)
retval: 0 - continue collecting hints with other subscribers
retval: 1 - stop collecting hints
def get_ea_hint(self, *args) ‑> PyObject *
ui wants to display a simple hint for an address. Use this event to generate a custom hint See also more generic 'ui_get_item_hint'
get_ea_hint(self, ea) -> PyObject *
ea (C++: ea_t)
def get_item_hint(self, *args) ‑> PyObject *
ui wants to display multiline hint for an item. See also more generic 'ui_get_custom_viewer_hint'
get_item_hint(self, ea, max_lines) -> PyObject *
ea: or item id like a structure or enum member (C++: ea_t)
max_lines: maximal number of lines (C++: int)
def get_lines_rendering_info(self, *args) ‑> void
get lines rendering information
get_lines_rendering_info(self, out, widget, info)
out (C++: lines_rendering_output_t *)
widget (C++: const TWidget *)
info (C++: const lines_rendering_input_t *)
def get_widget_config(self, *args) ‑> PyObject *
retrieve the widget configuration (it will be passed back at ui_create_desktop_widget-, and ui_set_widget_config-time)
get_widget_config(self, widget, cfg) -> PyObject *
widget (C++: const TWidget *)
cfg (C++: jobj_t *)
def hook(self, *args) ‑> bool
hook(self) -> bool
def idcstart(self, *args) ‑> void
Start of IDC engine work.
def idcstop(self, *args) ‑> void
Stop of IDC engine work.
def initing_database(self, *args) ‑> void
database initialization has started.
def plugin_loaded(self, *args) ‑> void
The plugin was loaded in memory.
plugin_loaded(self, plugin_info)
plugin_info (C++: const plugin_info_t *)
def plugin_unloading(self, *args) ‑> void
The plugin is about to be unloaded
plugin_unloading(self, plugin_info)
plugin_info (C++: const plugin_info_t *)
def populating_widget_popup(self, *args) ‑> void
IDA is populating the context menu for a widget. This is your chance to 'attach_action_to_popup()' .Have a look at ui_finish_populating_widget_popup, if you want to augment the context menu with your own actions after the menu has had a chance to be properly populated by the owning component or plugin (which typically does it on ui_populating_widget_popup.)
populating_widget_popup(self, widget, popup_handle, ctx=None)
widget (C++: TWidget *)
popup_handle (C++: TPopupMenu *)
ctx (C++: const action_activation_ctx_t *)
def postprocess_action(self, *args) ‑> void
an ida ui action has been handled
def preprocess_action(self, *args) ‑> int
ida ui is about to handle a user action.
preprocess_action(self, name) -> int
name: ui action name. these names can be looked up in
ida[tg]ui.cfg (C++: const char *)
retval: 0 - ok
retval: nonzero - a plugin has handled the command
def range(self, *args) ‑> void
The disassembly range has been changed (\inf{min_ea} ...
\inf{max_ea}
). UI should redraw the scrollbars. See also: 'ui_lock_range_refresh'
def ready_to_run(self, *args) ‑> void
all UI elements have been initialized. Automatic plugins may hook to this event to perform their tasks.
def resume(self, *args) ‑> void
Resume the suspended graphical interface. Only the text version. Interface should respond to it
def saved(self, *args) ‑> void
The kernel has saved the database. This callback just informs the interface. Note that at the time this notification is sent, the internal paths are not updated yet, and calling get_path(PATH_TYPE_IDB) will return the previous path.
saved(self, path)
path: the database path (C++: const char *)
def saving(self, *args) ‑> void
The kernel is flushing its buffers to the disk. The user interface should save its state. Parameters: none Returns: none
def screen_ea_changed(self, *args) ‑> void
The "current address" changed
screen_ea_changed(self, ea, prev_ea)
ea (C++: ea_t)
prev_ea (C++: ea_t)
def set_widget_config(self, *args) ‑> void
set the widget configuration
set_widget_config(self, widget, cfg)
widget (C++: const TWidget *)
cfg (C++: const jobj_t *)
def suspend(self, *args) ‑> void
Suspend graphical interface. Only the text version. Interface should respond to it.
def unhook(self, *args) ‑> bool
unhook(self) -> bool
def updated_actions(self, *args) ‑> void
IDA is done updating actions.
def updating_actions(self, *args) ‑> void
IDA is about to update all actions. If your plugin needs to perform expensive operations more than once (e.g., once per action it registers), you should do them only once, right away.
updating_actions(self, ctx)
ctx (C++: action_update_ctx_t *)
def widget_closing(self, *args) ‑> void
TWidget is about to close. This event precedes ui_widget_invisible. Use this to perform some possible actions relevant to the lifecycle of this widget
widget_closing(self, widget)
widget (C++: TWidget *)
def widget_invisible(self, *args) ‑> void
TWidget is being closed. Use this event to destroy the window controls
widget_invisible(self, widget)
widget (C++: TWidget *)
def widget_visible(self, *args) ‑> void
TWidget is displayed on the screen. Use this event to populate the window with controls
widget_visible(self, widget)
widget (C++: TWidget *)
class View_Hooks (*args)
Proxy of C++ View_Hooks class.
__init__(self, _flags=0) -> View_Hooks
_flags: uint32

Subclasses

Methods

def hook(self, *args) ‑> bool
hook(self) -> bool
def unhook(self, *args) ‑> bool
unhook(self) -> bool
def view_activated(self, *args) ‑> void
A view is activated
view_activated(self, view)
view (C++: TWidget *)
def view_click(self, *args) ‑> void
Click event
view_click(self, view, event)
view (C++: TWidget *)
event (C++: const view_mouse_event_t *)
def view_close(self, *args) ‑> void
View closed
view_close(self, view)
view (C++: TWidget *)
def view_created(self, *args) ‑> void
A view is being created.
view_created(self, view)
view (C++: TWidget *)
def view_curpos(self, *args) ‑> void
Cursor position changed
view_curpos(self, view)
view (C++: TWidget *)
def view_dblclick(self, *args) ‑> void
Double click event
view_dblclick(self, view, event)
view (C++: TWidget *)
event (C++: const view_mouse_event_t *)
def view_deactivated(self, *args) ‑> void
A view is deactivated
view_deactivated(self, view)
view (C++: TWidget *)
def view_keydown(self, *args) ‑> void
Key down event
view_keydown(self, view, key, state)
view (C++: TWidget *)
key (C++: int)
state (C++: view_event_state_t)
def view_loc_changed(self, *args) ‑> void
The location for the view has changed (can be either the 'place_t' , the 'renderer_info_t' , or both.)
view_loc_changed(self, view, now, was)
view (C++: TWidget *)
now (C++: const lochist_entry_t *)
was (C++: const lochist_entry_t *)
def view_mouse_moved(self, *args) ‑> void
The mouse moved on the view
view_mouse_moved(self, view, event)
view (C++: TWidget *)
event (C++: const view_mouse_event_t *)
def view_mouse_over(self, *args) ‑> void
The user moved the mouse over (or out of) a node or an edge. This is only relevant in a graph view.
view_mouse_over(self, view, event)
view (C++: TWidget *)
event (C++: const view_mouse_event_t *)
def view_switched(self, *args) ‑> void
A view's renderer has changed.
view_switched(self, view, rt)
view (C++: TWidget *)
rt (C++: tcc_renderer_type_t)
class action_ctx_base_cur_sel_t (*args)
Proxy of C++ action_ctx_base_cur_sel_t class.
__init__(self) -> action_ctx_base_cur_sel_t

Instance variables

var to
action_ctx_base_cur_sel_t_to_get(self) -> twinpos_t

Methods

def reset(self, *args) ‑> void
reset(self)
class action_ctx_base_source_t (*args)
Proxy of C++ action_ctx_base_source_t class.
__init__(self) -> action_ctx_base_source_t

Instance variables

var chooser
action_ctx_base_source_t_chooser_get(self) -> chooser_base_t

Methods

def reset(self, *args) ‑> void
reset(self)
class action_ctx_base_t (*args)
Proxy of C++ action_ctx_base_t class.
__init__(self) -> action_ctx_base_t

Instance variables

var action
action_ctx_base_t_action_get(self) -> char const *
var chooser_selection
action_ctx_base_t_chooser_selection_get(self) -> sizevec_t *
var cur_ea
action_ctx_base_t_cur_ea_get(self) -> ea_t
var cur_enum
action_ctx_base_t_cur_enum_get(self) -> enum_t
var cur_enum_member
action_ctx_base_t_cur_enum_member_get(self) -> const_t
var cur_extracted_ea
action_ctx_base_t_cur_value_get(self) -> uval_t
var cur_fchunk
action_ctx_base_t_cur_fchunk_get(self) -> func_t *
var cur_flags
action_ctx_base_t_cur_flags_get(self) -> uint32
var cur_func
action_ctx_base_t_cur_func_get(self) -> func_t *
var cur_seg
action_ctx_base_t_cur_seg_get(self) -> segment_t *
var cur_sel
action_ctx_base_t_cur_sel_get(self) -> action_ctx_base_cur_sel_t
var cur_strmem
action_ctx_base_t_cur_strmem_get(self) -> member_t *
var cur_struc
action_ctx_base_t_cur_struc_get(self) -> struc_t *
var cur_value
action_ctx_base_t_cur_value_get(self) -> uval_t
var dirtree_selection
action_ctx_base_t_dirtree_selection_get(self) -> dirtree_selection_t *
var focus
action_ctx_base_t_focus_get(self) -> TWidget *
var form : TWidget *
_get_form(self) -> TWidget *
var form_title : qstring
_get_form_title(self) -> qstring
var form_type : twidget_type_t
_get_form_type(self) -> twidget_type_t
var graph_selection
action_ctx_base_t_graph_selection_get(self) -> screen_graph_selection_t *
var regname
action_ctx_base_t_regname_get(self) -> char const *
var source
action_ctx_base_t_source_get(self) -> action_ctx_base_source_t
var widget
action_ctx_base_t_widget_get(self) -> TWidget *
var widget_title
action_ctx_base_t_widget_title_get(self) -> qstring *
var widget_type
action_ctx_base_t_widget_type_get(self) -> twidget_type_t

Methods

def has_flag(self, *args) ‑> bool
Check if the given flag is set.
has_flag(self, flag) -> bool
flag (C++: uint32)
def reset(self, *args) ‑> void
Invalidate all context info.
class action_desc_t (*args)
Proxy of C++ action_desc_t class.
__init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t
name: char const * label: char const * handler: PyObject * shortcut: char const * tooltip: char const * icon: int flags: int

Instance variables

var cb
action_desc_t_cb_get(self) -> int
var flags
action_desc_t_flags_get(self) -> int
var icon
action_desc_t_icon_get(self) -> int
var label
action_desc_t_label_get(self) -> char const *
var name
action_desc_t_name_get(self) -> char const *
var owner
action_desc_t_owner_get(self) -> void const *
var shortcut
action_desc_t_shortcut_get(self) -> char const *
var tooltip
action_desc_t_tooltip_get(self) -> char const *
class action_handler_t

Subclasses

  • ida_kernwin.quick_widget_commands_t._ah_t

Methods

def activate(self, ctx)
def update(self, ctx)
class addon_info_t (*args)
Proxy of C++ addon_info_t class.
__init__(self) -> addon_info_t

Instance variables

var cb
addon_info_t_cb_get(self) -> size_t
var custom_data
addon_info_t_custom_data_get(self) -> void const *
var custom_size
addon_info_t_custom_size_get(self) -> size_t
var freeform
addon_info_t_freeform_get(self) -> char const *
var id
addon_info_t_id_get(self) -> char const *
var name
addon_info_t_name_get(self) -> char const *
var producer
addon_info_t_producer_get(self) -> char const *
var url
addon_info_t_url_get(self) -> char const *
var version
addon_info_t_version_get(self) -> char const *
class chooser_base_t (*args, **kwargs)
Proxy of C++ chooser_base_t class.

Class variables

var NSTDPOPUPS
var POPUP_DEL
var POPUP_EDIT
var POPUP_INS
var POPUP_REFRESH

Instance variables

var columns
chooser_base_t_columns_get(self) -> int
var deflt_col
chooser_base_t_deflt_col_get(self) -> int
var header
chooser_base_t_header_get(self) -> char const *const *
var height
chooser_base_t_height_get(self) -> int
var icon
chooser_base_t_icon_get(self) -> int
var popup_names
chooser_base_t_popup_names_get(self) -> qstring [chooser_base_t::NSTDPOPUPS]
var title
chooser_base_t_title_get(self) -> char const *
var width
chooser_base_t_width_get(self) -> int
var widths
chooser_base_t_widths_get(self) -> int const *
var x0
chooser_base_t_x0_get(self) -> int
var x1
chooser_base_t_x1_get(self) -> int
var y0
chooser_base_t_y0_get(self) -> int
var y1
chooser_base_t_y1_get(self) -> int

Methods

def ask_item_attrs(self, *args) ‑> bool
should chooser generate ui_get_chooser_item_attrs events?
def can_del(self, *args) ‑> bool
can_del(self) -> bool
def can_edit(self, *args) ‑> bool
can_edit(self) -> bool
def can_filter(self, *args) ‑> bool
can_filter(self) -> bool
def can_ins(self, *args) ‑> bool
is an operation allowed?
def can_refresh(self, *args) ‑> bool
can_refresh(self) -> bool
def can_sort(self, *args) ‑> bool
can_sort(self) -> bool
def get_builtin_number(self, *args) ‑> uint
get number of the built-in chooser
def get_count(self, *args) ‑> size_t
get the number of elements in the chooser
def get_ea(self, *args) ‑> ea_t
get an address of an element. Used to set breakpoint in any chooser which implements this callback.
get_ea(self, arg2) -> ea_t
arg2: size_t
return: the effective address, BADADDR if the element has no address
def get_quick_filter_initial_mode(self, *args) ‑> int
get_quick_filter_initial_mode(self) -> int
def get_row(self, *args) ‑> PyObject *
get a description of an element.
get_row(self, n) -> PyObject *
n: element number (0.. get_count() -1) (C++: size_t)
def has_diff_capability(self, *args) ‑> bool
has_diff_capability(self) -> bool
def has_dirtree(self, *args) ‑> bool
has_dirtree(self) -> bool
def is_force_default(self, *args) ‑> bool
should selection of the already opened non-modal chooser be changed?
def is_modal(self, *args) ‑> bool
is choose modal?
def is_multi(self, *args) ‑> bool
is multi-selection allowed?
def is_noidb(self, *args) ‑> bool
can use the chooser before opening the database?
def is_quick_filter_visible_initially(self, *args) ‑> bool
is_quick_filter_visible_initially(self) -> bool
def is_same(self, *args) ‑> bool
do the current and the given objects hold the same data?
is_same(self, other) -> bool
other (C++: const chooser_base_t *)
def is_status_bar_hidden(self, *args) ‑> bool
is_status_bar_hidden(self) -> bool
def popup_allowed(self, *args) ‑> bool
is a popup action allowed?
popup_allowed(self, i) -> bool
i (C++: int)
def should_rename_trigger_edit(self, *args) ‑> bool
should_rename_trigger_edit(self) -> bool
def should_restore_geometry(self, *args) ‑> bool
should_restore_geometry(self) -> bool
class chooser_item_attrs_t (*args)
Proxy of C++ chooser_item_attrs_t class.
__init__(self) -> chooser_item_attrs_t

Instance variables

var color
chooser_item_attrs_t_color_get(self) -> bgcolor_t
var flags
chooser_item_attrs_t_flags_get(self) -> int

Methods

def reset(self, *args) ‑> void
reset(self)
class cli_t
cli_t wrapper class.
This class allows you to implement your own command line interface handlers.

Ancestors

Methods

def OnCompleteLine(self, prefix, n, line, prefix_start)
The user pressed Tab. Find a completion number N for prefix PREFIX
This callback is optional.
prefix: Line prefix at prefix_start (string)
n: completion number (int)
line: the current line (string)
prefix_start: the index where PREFIX starts in LINE (int)
return: None if no completion could be generated otherwise a String with the completion suggestion
def OnExecuteLine(self, line)
The user pressed Enter. The CLI is free to execute the line immediately or ask for more lines.
This callback is mandatory.
line: typed line(s)
return Boolean: True-executed line, False-ask for more lines
def OnKeydown(self, line, x, sellen, vkey, shift)
A keyboard key has been pressed This is a generic callback and the CLI is free to do whatever it wants.
This callback is optional.
line: current input line
x: current x coordinate of the cursor
sellen: current selection length (usually 0)
vkey: virtual key code. if the key has been handled, it should be returned as zero
shift: shift state
return:
None - Nothing was changed tuple(line, x, sellen, vkey): if either of the input line or the x coordinate or the selection length has been modified. It is possible to return a tuple with None elements to preserve old values. Example: tuple(new_line, None, None, None) or tuple(new_line)
def register(self, flags=0, sname=None, lname=None, hint=None)
Registers the CLI.
flags: Feature bits. No bits are defined yet, must be 0
sname: Short name (displayed on the button)
lname: Long name (displayed in the menu)
hint: Hint for the input line
return Boolean: True-Success, False-Failed
def unregister(self)
Unregisters the CLI (if it was registered)
class disabled_script_timeout_t
class disasm_line_t (*args)
Proxy of C++ disasm_line_t class.
__init__(self) -> disasm_line_t
other: disasm_line_t const &

Instance variables

var at
disasm_line_t_at_get(self) -> place_t
var bg_color
disasm_line_t_bg_color_get(self) -> bgcolor_t
var is_default
disasm_line_t_is_default_get(self) -> bool
var line
disasm_line_t_line_get(self) -> qstring *
var prefix_color
disasm_line_t_prefix_color_get(self) -> color_t
class disasm_text_t (*args)
Proxy of C++ qvector< disasm_line_t > class.
__init__(self) -> disasm_text_t
x: qvector< disasm_line_t > const &

Methods

def at(self, *args) ‑> disasm_line_t const &
at(self, _idx) -> disasm_line_t
_idx: size_t
def back(self)
def begin(self, *args) ‑> qvector< disasm_line_t >::const_iterator
begin(self) -> disasm_line_t
begin(self) -> disasm_line_t
def capacity(self, *args) ‑> size_t
capacity(self) -> size_t
def clear(self, *args) ‑> void
clear(self)
def empty(self, *args) ‑> bool
empty(self) -> bool
def end(self, *args) ‑> qvector< disasm_line_t >::const_iterator
end(self) -> disasm_line_t
end(self) -> disasm_line_t
def erase(self, *args) ‑> qvector< disasm_line_t >::iterator
erase(self, it) -> disasm_line_t
it: qvector< disasm_line_t >::iterator
erase(self, first, last) -> disasm_line_t
first: qvector< disasm_line_t >::iterator last: qvector< disasm_line_t >::iterator
def extract(self, *args) ‑> disasm_line_t *
extract(self) -> disasm_line_t
def front(self)
def grow(self, *args) ‑> void
grow(self, x=disasm_line_t())
x: disasm_line_t const &
def inject(self, *args) ‑> void
inject(self, s, len)
s: disasm_line_t * len: size_t
def insert(self, *args) ‑> qvector< disasm_line_t >::iterator
insert(self, it, x) -> disasm_line_t
it: qvector< disasm_line_t >::iterator x: disasm_line_t const &
def pop_back(self, *args) ‑> void
pop_back(self)
def push_back(self, *args) ‑> disasm_line_t &
push_back(self, x)
x: disasm_line_t const &
def qclear(self, *args) ‑> void
qclear(self)
def reserve(self, *args) ‑> void
reserve(self, cnt)
cnt: size_t
def resize(self, *args) ‑> void
resize(self, _newsize, x)
_newsize: size_t x: disasm_line_t const &
resize(self, _newsize)
_newsize: size_t
def size(self, *args) ‑> size_t
size(self) -> size_t
def swap(self, *args) ‑> void
swap(self, r)
r: qvector< disasm_line_t > &
def truncate(self, *args) ‑> void
truncate(self)
class enumplace_t (*args, **kwargs)
Proxy of C++ enumplace_t class.

Ancestors

Instance variables

var bmask
enumplace_t_bmask_get(self) -> bmask_t
var idx
enumplace_t_idx_get(self) -> size_t
var serial
enumplace_t_serial_get(self) -> uchar
var value
enumplace_t_value_get(self) -> uval_t

Inherited members

class idaplace_t (*args, **kwargs)
Proxy of C++ idaplace_t class.

Ancestors

Instance variables

var ea
idaplace_t_ea_get(self) -> ea_t

Inherited members

class jobj_wrapper_t (*args, **kwargs)
Proxy of C++ jobj_wrapper_t class.

Methods

def get_dict(self, *args) ‑> PyObject *
get_dict(self) -> PyObject *
class line_rendering_output_entries_refs_t (*args)
Proxy of C++ qvector< line_rendering_output_entry_t * > class.
__init__(self) -> line_rendering_output_entries_refs_t
x: qvector< line_rendering_output_entry_t * > const &

Methods

def add_unique(self, *args) ‑> bool
add_unique(self, x) -> bool
x: line_rendering_output_entry_t *const &
def at(self, *args) ‑> line_rendering_output_entry_t *const &
at(self, _idx) -> line_rendering_output_entry_t
_idx: size_t
def back(self)
def begin(self, *args) ‑> qvector< line_rendering_output_entry_t * >::const_iterator
begin(self) -> qvector< line_rendering_output_entry_t * >::iterator
begin(self) -> qvector< line_rendering_output_entry_t * >::const_iterator
def capacity(self, *args) ‑> size_t
capacity(self) -> size_t
def clear(self, *args) ‑> void
clear(self)
def empty(self, *args) ‑> bool
empty(self) -> bool
def end(self, *args) ‑> qvector< line_rendering_output_entry_t * >::const_iterator
end(self) -> qvector< line_rendering_output_entry_t * >::iterator
end(self) -> qvector< line_rendering_output_entry_t * >::const_iterator
def erase(self, *args) ‑> qvector< line_rendering_output_entry_t * >::iterator
erase(self, it) -> qvector< line_rendering_output_entry_t * >::iterator
it: qvector< line_rendering_output_entry_t * >::iterator
erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator
first: qvector< line_rendering_output_entry_t * >::iterator last: qvector< line_rendering_output_entry_t * >::iterator
def extract(self, *args) ‑> line_rendering_output_entry_t **
extract(self) -> line_rendering_output_entry_t **
def find(self, *args) ‑> qvector< line_rendering_output_entry_t * >::const_iterator
find(self, x) -> qvector< line_rendering_output_entry_t * >::iterator
x: line_rendering_output_entry_t *const &
find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator
x: line_rendering_output_entry_t *const &
def front(self)
def has(self, *args) ‑> bool
has(self, x) -> bool
x: line_rendering_output_entry_t *const &
def inject(self, *args) ‑> void
inject(self, s, len)
s: line_rendering_output_entry_t ** len: size_t
def insert(self, *args) ‑> qvector< line_rendering_output_entry_t * >::iterator
insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator
it: qvector< line_rendering_output_entry_t * >::iterator x: line_rendering_output_entry_t *const &
def pop_back(self, *args) ‑> void
pop_back(self)
def push_back(self, e)
def qclear(self, *args) ‑> void
qclear(self)
def reserve(self, *args) ‑> void
reserve(self, cnt)
cnt: size_t
def resize(self, *args) ‑> void
resize(self, _newsize, x)
_newsize: size_t x: line_rendering_output_entry_t *const &
resize(self, _newsize)
_newsize: size_t
def size(self, *args) ‑> size_t
size(self) -> size_t
def swap(self, *args) ‑> void
swap(self, r)
r: qvector< line_rendering_output_entry_t * > &
def truncate(self, *args) ‑> void
truncate(self)
class line_rendering_output_entry_t (*args)
Proxy of C++ line_rendering_output_entry_t class.
__init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t
_line: twinline_t const * _flags: uint32 _bg_color: bgcolor_t
__init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t
_line: twinline_t const * _cpx: int _nchars: int _flags: uint32 _bg_color: bgcolor_t

Instance variables

var bg_color
line_rendering_output_entry_t_bg_color_get(self) -> bgcolor_t
var cpx
line_rendering_output_entry_t_cpx_get(self) -> int
var flags
line_rendering_output_entry_t_flags_get(self) -> uint32
var line
line_rendering_output_entry_t_line_get(self) -> twinline_t
var nchars
line_rendering_output_entry_t_nchars_get(self) -> int

Methods

def is_bg_color_direct(self, *args) ‑> bool
is_bg_color_direct(self) -> bool
def is_bg_color_empty(self, *args) ‑> bool
is_bg_color_empty(self) -> bool
def is_bg_color_key(self, *args) ‑> bool
is_bg_color_key(self) -> bool
class linearray_t (*args)
Proxy of C++ linearray_t class.
__init__(self, _ud) -> linearray_t
_ud: void *

Methods

def beginning(self, *args) ‑> bool
Are we at the beginning?
def down(self, *args) ‑> qstring const *
Get a line from down direction. place is ok BEFORE
def ending(self, *args) ‑> bool
ending(self) -> bool
def get_bg_color(self, *args) ‑> bgcolor_t
Get current background color. (the same behavior as with 'get_place()' : good before 'down()' and after 'up()' )
def get_dlnnum(self, *args) ‑> int
Get default line number. (the same behavior as with 'get_place()' : good before 'down()' and after 'up()' )
def get_linecnt(self, *args) ‑> int
Get number of lines for the current place. (the same behavior as with 'get_place()' : good before 'down()' and after 'up()' )
def get_pfx_color(self, *args) ‑> bgcolor_t
Get current prefix color. (the same behavior as with 'get_place()' : good before 'down()' and after 'up()' )
def get_place(self, *args) ‑> place_t *
Get the current place. If called before 'down()' , then returns place of line which will be returned by 'down()' . If called after 'up()' , then returns place if line returned by 'up()' .
def set_place(self, *args) ‑> int
Position the array. This function must be called before calling any other member functions. 'linearray_t' doesn't own 'place_t' structures. The caller must take care of 'place_t' objects.
set_place(self, new_at) -> int
new_at: new position of the array (C++: const place_t *)
return: the delta of lines that the linearray_t had to adjust the
place by. For example, if the place_t has a lnnum of 5, but it turns out, upon generating lines, that the number of lines for that particular place is only 2, then 3 will be returned.
def set_userdata(self, *args) ‑> void
Change the user data.
set_userdata(self, userd)
userd (C++: void *)
def up(self, *args) ‑> qstring const *
Get a line from up direction. place is ok AFTER
def userdata(self, *args) ‑> void *
Get pointer to user data.
class lines_rendering_input_t (*args)
Proxy of C++ lines_rendering_input_t class.
__init__(self) -> lines_rendering_input_t

Instance variables

var cb
lines_rendering_input_t_cb_get(self) -> int
var sections_lines
lines_rendering_input_t_sections_lines_get(self) -> sections_lines_refs_t
var sync_group
lines_rendering_input_t_sync_group_get(self) -> synced_group_t
class lines_rendering_output_t (*args)
Proxy of C++ lines_rendering_output_t class.
__init__(self) -> lines_rendering_output_t

Instance variables

var entries
lines_rendering_output_t_entries_get(self) -> line_rendering_output_entries_refs_t
var flags
lines_rendering_output_t_flags_get(self) -> uint32

Methods

def clear(self, *args) ‑> void
clear(self)
def swap(self, *args) ‑> void
swap(self, r)
r (C++: lines_rendering_output_t &)
class place_t (*args, **kwargs)
Proxy of C++ place_t class.

Subclasses

Static methods

def as_enumplace_t(*args) ‑> enumplace_t *
as_enumplace_t(p) -> enumplace_t
p: place_t *
def as_idaplace_t(*args) ‑> idaplace_t *
as_idaplace_t(p) -> idaplace_t
p: place_t *
def as_simpleline_place_t(*args) ‑> simpleline_place_t *
as_simpleline_place_t(p) -> simpleline_place_t
p: place_t *
def as_structplace_t(*args) ‑> structplace_t *
as_structplace_t(p) -> structplace_t
p: place_t *

Instance variables

var lnnum
place_t_lnnum_get(self) -> int

Methods

def adjust(self, *args) ‑> void
Adjust the current location to point to a displayable object. This function validates the location and makes sure that it points to an existing object. For example, if the location points to the middle of an instruction, it will be adjusted to point to the beginning of the instruction.
adjust(self, ud)
ud: pointer to user-defined context data. Is supplied by
linearray_t (C++: void *)
def beginning(self, *args) ‑> bool
Are we at the first displayable object?.
beginning(self, ud) -> bool
ud: pointer to user-defined context data. Is supplied by
linearray_t (C++: void *)
return: true if the current location points to the first displayable
object
def clone(self, *args) ‑> place_t *
Clone the location.
def compare(self, *args) ‑> int
Deprecated. Please consider compare2(const place_t *, void *) instead.
compare(self, t2) -> int
t2 (C++: const place_t *)
def compare2(self, *args) ‑> int
Compare two locations except line numbers (lnnum). This function is used to organize loops. For example, if the user has selected an range, its boundaries are remembered as location objects. Any operation within the selection will have the following look: for ( loc=starting_location; loc < ending_location; loc.next() ) In this loop, the comparison function is used.
compare2(self, t2, arg3) -> int
t2: the place to compare this one to. (C++: const place_t *) arg3: void *
retval: -1 - if the current location is less than 't2'
retval: 0 - if the current location is equal to than 't2'
retval: 1 - if the current location is greater than 't2'
def copyfrom(self, *args) ‑> void
Copy the specified location object to the current object.
copyfrom(self, _from)
_from (C++: const place_t *)
def deserialize(self, *args) ‑> bool
De-serialize into this instance. 'pptr' should be incremented by as many bytes as de-serialization consumed.
deserialize(self, _in) -> bool
in: bytevec_t const &
return: whether de-serialization was successful
def ending(self, *args) ‑> bool
Are we at the last displayable object?.
ending(self, ud) -> bool
ud: pointer to user-defined context data. Is supplied by
linearray_t (C++: void *)
return: true if the current location points to the last displayable
object
def enter(self, *args) ‑> place_t *
Visit this place, possibly 'unhiding' a section of text. If entering that place required some expanding, a 'place_t' should be returned that represents that section, plus some flags for later use by ' 'leave()' '.
enter(self, arg2) -> place_t
arg2: uint32 *
return: a place_t corresponding to the beginning of the section of
text that had to be expanded. That place_t 's leave() will be called with the flags contained in 'out_flags' when the user navigates away from it.
def generate(self, *args) ‑> PyObject *
Generate text lines for the current location.
generate(self, ud, maxsize) -> PyObject *
ud: pointer to user-defined context data. Is supplied by
linearray_t (C++: void *)
maxsize: the maximum number of lines to generate (C++: int)
return: number of generated lines
def id(self, *args) ‑> int
Get the place's ID (i.e., the value returned by 'register_place_class()' )
def leave(self, *args) ‑> void
Leave this place, possibly 'hiding' a section of text that was previously expanded (at 'enter()' -time.)
leave(self, arg2)
arg2: uint32
def makeplace(self, *args) ‑> place_t *
Map a number to a location. When the user clicks on the scrollbar and drags it, we need to determine the location corresponding to the new scrollbar position. This function is used to determine it. It builds a location object for the specified 'x' and returns a pointer to it.
makeplace(self, ud, x, lnnum) -> place_t
ud: pointer to user-defined context data. Is supplied by
linearray_t (C++: void *)
x: number to map (C++: uval_t)
lnnum: line number to initialize 'lnnum' (C++: int)
return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES
def name(self, *args) ‑> char const *
Get this place type name. All instances of a given class must return the same string.
def next(self, *args) ‑> bool
Move to the next displayable location.
next(self, ud) -> bool
ud: pointer to user-defined context data. Is supplied by
linearray_t (C++: void *)
return: success
def prev(self, *args) ‑> bool
Move to the previous displayable location.
prev(self, ud) -> bool
ud: pointer to user-defined context data. Is supplied by
linearray_t (C++: void *)
return: success
def rebase(self, *args) ‑> bool
Rebase the place instance
rebase(self, arg2) -> bool
arg2: segm_move_infos_t const &
return: true if place was rebased, false otherwise
def serialize(self, *args) ‑> void
Serialize this instance. It is fundamental that all instances of a particular subclass of of 'place_t' occupy the same number of bytes when serialized.
def toea(self, *args) ‑> ea_t
Map the location to an ea_t.
def touval(self, *args) ‑> uval_t
Map the location to a number. This mapping is used to draw the vertical scrollbar.
touval(self, ud) -> uval_t
ud: pointer to user-defined context data. Is supplied by
linearray_t (C++: void *)
class quick_widget_commands_t (callback)

Methods

def add(self, caption, flags, menu_index, icon, emb, shortcut)
def populate_popup(self, widget, popup)
class renderer_pos_info_t (*args)
Proxy of C++ renderer_pos_info_t class.
__init__(self) -> renderer_pos_info_t

Instance variables

var cx
renderer_pos_info_t_cx_get(self) -> short
var cy
renderer_pos_info_t_cy_get(self) -> short
var node
renderer_pos_info_t_node_get(self) -> int
var sx
renderer_pos_info_t_sx_get(self) -> short
class section_lines_refs_t (*args)
Proxy of C++ qvector< twinline_t const * > class.
__init__(self) -> section_lines_refs_t
x: qvector< twinline_t const * > const &

Methods

def add_unique(self, *args) ‑> bool
add_unique(self, x) -> bool
x: twinline_t const *const &
def at(self, *args) ‑> twinline_t const *const &
at(self, _idx) -> twinline_t
_idx: size_t
def back(self)
def begin(self, *args) ‑> qvector< twinline_t const * >::const_iterator
begin(self) -> qvector< twinline_t const * >::iterator
begin(self) -> qvector< twinline_t const * >::const_iterator
def capacity(self, *args) ‑> size_t
capacity(self) -> size_t
def clear(self, *args) ‑> void
clear(self)
def empty(self, *args) ‑> bool
empty(self) -> bool
def end(self, *args) ‑> qvector< twinline_t const * >::const_iterator
end(self) -> qvector< twinline_t const * >::iterator
end(self) -> qvector< twinline_t const * >::const_iterator
def erase(self, *args) ‑> qvector< twinline_t const * >::iterator
erase(self, it) -> qvector< twinline_t const * >::iterator
it: qvector< twinline_t const * >::iterator
erase(self, first, last) -> qvector< twinline_t const * >::iterator
first: qvector< twinline_t const * >::iterator last: qvector< twinline_t const * >::iterator
def extract(self, *args) ‑> twinline_t const **
extract(self) -> twinline_t const **
def find(self, *args) ‑> qvector< twinline_t const * >::const_iterator
find(self, x) -> qvector< twinline_t const * >::iterator
x: twinline_t const *const &
find(self, x) -> qvector< twinline_t const * >::const_iterator
x: twinline_t const *const &
def front(self)
def has(self, *args) ‑> bool
has(self, x) -> bool
x: twinline_t const *const &
def inject(self, *args) ‑> void
inject(self, s, len)
s: twinline_t const ** len: size_t
def insert(self, *args) ‑> qvector< twinline_t const * >::iterator
insert(self, it, x) -> qvector< twinline_t const * >::iterator
it: qvector< twinline_t const * >::iterator x: twinline_t const *const &
def pop_back(self, *args) ‑> void
pop_back(self)
def push_back(self, *args) ‑> twinline_t const *&
push_back(self, x)
x: twinline_t const *const &
def qclear(self, *args) ‑> void
qclear(self)
def reserve(self, *args) ‑> void
reserve(self, cnt)
cnt: size_t
def resize(self, *args) ‑> void
resize(self, _newsize, x)
_newsize: size_t x: twinline_t const *const &
resize(self, _newsize)
_newsize: size_t
def size(self, *args) ‑> size_t
size(self) -> size_t
def swap(self, *args) ‑> void
swap(self, r)
r: qvector< twinline_t const * > &
def truncate(self, *args) ‑> void
truncate(self)
class sections_lines_refs_t (*args)
Proxy of C++ qvector< section_lines_refs_t > class.
__init__(self) -> sections_lines_refs_t
x: qvector< section_lines_refs_t > const &

Methods

def add_unique(self, *args) ‑> bool
add_unique(self, x) -> bool
x: section_lines_refs_t const &
def at(self, *args) ‑> section_lines_refs_t const &
at(self, _idx) -> section_lines_refs_t
_idx: size_t
def back(self)
def begin(self, *args) ‑> qvector< section_lines_refs_t >::const_iterator
begin(self) -> qvector< section_lines_refs_t >::iterator
begin(self) -> qvector< section_lines_refs_t >::const_iterator
def capacity(self, *args) ‑> size_t
capacity(self) -> size_t
def clear(self, *args) ‑> void
clear(self)
def empty(self, *args) ‑> bool
empty(self) -> bool
def end(self, *args) ‑> qvector< section_lines_refs_t >::const_iterator
end(self) -> qvector< section_lines_refs_t >::iterator
end(self) -> qvector< section_lines_refs_t >::const_iterator
def erase(self, *args) ‑> qvector< section_lines_refs_t >::iterator
erase(self, it) -> qvector< section_lines_refs_t >::iterator
it: qvector< section_lines_refs_t >::iterator
erase(self, first, last) -> qvector< section_lines_refs_t >::iterator
first: qvector< section_lines_refs_t >::iterator last: qvector< section_lines_refs_t >::iterator
def extract(self, *args) ‑> section_lines_refs_t *
extract(self) -> section_lines_refs_t
def find(self, *args) ‑> qvector< section_lines_refs_t >::const_iterator
find(self, x) -> qvector< section_lines_refs_t >::iterator
x: section_lines_refs_t const &
find(self, x) -> qvector< section_lines_refs_t >::const_iterator
x: section_lines_refs_t const &
def front(self)
def grow(self, *args) ‑> void
grow(self, x=section_lines_refs_t())
x: section_lines_refs_t const &
def has(self, *args) ‑> bool
has(self, x) -> bool
x: section_lines_refs_t const &
def inject(self, *args) ‑> void
inject(self, s, len)
s: section_lines_refs_t * len: size_t
def insert(self, *args) ‑> qvector< section_lines_refs_t >::iterator
insert(self, it, x) -> qvector< section_lines_refs_t >::iterator
it: qvector< section_lines_refs_t >::iterator x: section_lines_refs_t const &
def pop_back(self, *args) ‑> void
pop_back(self)
def push_back(self, *args) ‑> section_lines_refs_t &
push_back(self, x)
x: section_lines_refs_t const &
def qclear(self, *args) ‑> void
qclear(self)
def reserve(self, *args) ‑> void
reserve(self, cnt)
cnt: size_t
def resize(self, *args) ‑> void
resize(self, _newsize, x)
_newsize: size_t x: section_lines_refs_t const &
resize(self, _newsize)
_newsize: size_t
def size(self, *args) ‑> size_t
size(self) -> size_t
def swap(self, *args) ‑> void
swap(self, r)
r: qvector< section_lines_refs_t > &
def truncate(self, *args) ‑> void
truncate(self)
class simplecustviewer_t
The base class for implementing simple custom viewers

Class variables

var UI_Hooks_Trampoline
Proxy of C++ UI_Hooks class.

Methods

def AddLine(self, line, fgcolor=None, bgcolor=None)
Adds a colored line to the view
return: Boolean
def ClearLines(self)
Clears all the lines
def Close(self)
Destroys the view. One has to call Create() afterwards. Show() can be called and it will call Create() internally.
return: Boolean
def Count(self)
Returns the number of lines in the view
def Create(self, title)
Creates the custom view. This should be the first method called after instantiation
title: The title of the view
return: Boolean whether it succeeds or fails. It may fail if a window with the same title is already open.
In this case better close existing windows
def DelLine(self, lineno)
Deletes an existing line
return: Boolean
def EditLine(self, lineno, line, fgcolor=None, bgcolor=None)
Edits an existing line.
return: Boolean
def GetCurrentLine(self, mouse=0, notags=0)
Returns the current line.
mouse: Current line at mouse pos
notags: If True then tag_remove() will be called before returning the line
return: Returns the current line (colored or uncolored) or None on failure
def GetCurrentWord(self, mouse=0)
Returns the current word
mouse: Use mouse position or cursor position
return: None if failed or a String containing the current word at mouse or cursor
def GetLine(self, lineno)
Returns a line
lineno: The line number
return:
Returns a tuple (colored_line, fgcolor, bgcolor) or None
def GetLineNo(self, mouse=0)
Calls GetPos() and returns the current line number or -1 on failure
def GetPos(self, mouse=0)
Returns the current cursor or mouse position.
mouse: return mouse position
return: Returns a tuple (lineno, x, y)
def GetSelection(self)
Returns the selected range or None
return:
  • tuple(x1, y1, x2, y2)
  • None if no selection
def GetWidget(self)
Return the TWidget underlying this view.
return: The TWidget underlying this view, or None.
def InsertLine(self, lineno, line, fgcolor=None, bgcolor=None)
Inserts a line in the given position
return: Boolean
def IsFocused(self)
Returns True if the current view is the focused view
def Jump(self, lineno, x=0, y=0)
def OnPopup(self, form, popup_handle)
Context menu popup is about to be shown. Create items dynamically if you wish
return: Boolean. True if you handled the event
def PatchLine(self, lineno, offs, value)
Patches an existing line character at the given offset. This is a low level function. You must know what you're doing
def Refresh(self)
def RefreshCurrent(self)
Refreshes the current line only
def Show(self)
Shows an already created view. It the view was close, then it will call Create() for you
return: Boolean
class simpleline_place_t (*args, **kwargs)
Proxy of C++ simpleline_place_t class.

Ancestors

Instance variables

var n
simpleline_place_t_n_get(self) -> uint32

Inherited members

class simpleline_t (*args)
Proxy of C++ simpleline_t class.
__init__(self) -> simpleline_t
c: color_t str: char const *
__init__(self, str) -> simpleline_t
str: char const *

Instance variables

var bgcolor
simpleline_t_bgcolor_get(self) -> bgcolor_t
var color
simpleline_t_color_get(self) -> color_t
var line
simpleline_t_line_get(self) -> qstring *
class strarray_t (*args)
Proxy of C++ strarray_t class.
__init__(self) -> strarray_t

Instance variables

var code
strarray_t_code_get(self) -> int
var text
strarray_t_text_get(self) -> char const *
class structplace_t (*args, **kwargs)
Proxy of C++ structplace_t class.

Ancestors

Instance variables

var idx
structplace_t_idx_get(self) -> uval_t
var offset
structplace_t_offset_get(self) -> uval_t

Inherited members

class sync_source_t (*args)
Proxy of C++ sync_source_t class.
__init__(self, _view) -> sync_source_t
_view: TWidget const *
__init__(self, _regname) -> sync_source_t
_regname: char const *

Methods

def get_register(self, *args) ‑> char const *
get_register(self) -> char const *
def get_widget(self, *args) ‑> TWidget const *
get_widget(self) -> TWidget const *
def is_register(self, *args) ‑> bool
is_register(self) -> bool
def is_widget(self, *args) ‑> bool
is_widget(self) -> bool
class sync_source_vec_t (*args)
Proxy of C++ qvector< sync_source_t > class.
__init__(self) -> sync_source_vec_t
x: qvector< sync_source_t > const &

Subclasses

Methods

def add_unique(self, *args) ‑> bool
add_unique(self, x) -> bool
x: sync_source_t const &
def at(self, *args) ‑> sync_source_t const &
at(self, _idx) -> sync_source_t
_idx: size_t
def back(self)
def begin(self, *args) ‑> qvector< sync_source_t >::const_iterator
begin(self) -> sync_source_t
begin(self) -> sync_source_t
def capacity(self, *args) ‑> size_t
capacity(self) -> size_t
def clear(self, *args) ‑> void
clear(self)
def empty(self, *args) ‑> bool
empty(self) -> bool
def end(self, *args) ‑> qvector< sync_source_t >::const_iterator
end(self) -> sync_source_t
end(self) -> sync_source_t
def erase(self, *args) ‑> qvector< sync_source_t >::iterator
erase(self, it) -> sync_source_t
it: qvector< sync_source_t >::iterator
erase(self, first, last) -> sync_source_t
first: qvector< sync_source_t >::iterator last: qvector< sync_source_t >::iterator
def extract(self, *args) ‑> sync_source_t *
extract(self) -> sync_source_t
def find(self, *args) ‑> qvector< sync_source_t >::const_iterator
find(self, x) -> sync_source_t
x: sync_source_t const &
find(self, x) -> sync_source_t
x: sync_source_t const &
def front(self)
def has(self, *args) ‑> bool
has(self, x) -> bool
x: sync_source_t const &
def inject(self, *args) ‑> void
inject(self, s, len)
s: sync_source_t * len: size_t
def insert(self, *args) ‑> qvector< sync_source_t >::iterator
insert(self, it, x) -> sync_source_t
it: qvector< sync_source_t >::iterator x: sync_source_t const &
def pop_back(self, *args) ‑> void
pop_back(self)
def push_back(self, *args) ‑> void
push_back(self, x)
x: sync_source_t const &
def qclear(self, *args) ‑> void
qclear(self)
def reserve(self, *args) ‑> void
reserve(self, cnt)
cnt: size_t
def size(self, *args) ‑> size_t
size(self) -> size_t
def swap(self, *args) ‑> void
swap(self, r)
r: qvector< sync_source_t > &
def truncate(self, *args) ‑> void
truncate(self)
class synced_group_t (*args)
Proxy of C++ synced_group_t class.
__init__(self) -> synced_group_t

Ancestors

Methods

def has(self, *args) ‑> bool
has(self, ss) -> bool
ss (C++: const sync_source_t &)
def has_register(self, *args) ‑> bool
has_register(self, r) -> bool
r (C++: const char *)
def has_widget(self, *args) ‑> bool
has_widget(self, v) -> bool
v (C++: const TWidget *)

Inherited members

class text_t (*args)
Proxy of C++ qvector< twinline_t > class.
__init__(self) -> text_t
x: qvector< twinline_t > const &

Methods

def at(self, *args) ‑> twinline_t const &
at(self, _idx) -> twinline_t
_idx: size_t
def back(self)
def begin(self, *args) ‑> qvector< twinline_t >::const_iterator
begin(self) -> twinline_t
begin(self) -> twinline_t
def capacity(self, *args) ‑> size_t
capacity(self) -> size_t
def clear(self, *args) ‑> void
clear(self)
def empty(self, *args) ‑> bool
empty(self) -> bool
def end(self, *args) ‑> qvector< twinline_t >::const_iterator
end(self) -> twinline_t
end(self) -> twinline_t
def erase(self, *args) ‑> qvector< twinline_t >::iterator
erase(self, it) -> twinline_t
it: qvector< twinline_t >::iterator
erase(self, first, last) -> twinline_t
first: qvector< twinline_t >::iterator last: qvector< twinline_t >::iterator
def extract(self, *args) ‑> twinline_t *
extract(self) -> twinline_t
def front(self)
def grow(self, *args) ‑> void
grow(self, x=twinline_t())
x: twinline_t const &
def inject(self, *args) ‑> void
inject(self, s, len)
s: twinline_t * len: size_t
def insert(self, *args) ‑> qvector< twinline_t >::iterator
insert(self, it, x) -> twinline_t
it: qvector< twinline_t >::iterator x: twinline_t const &
def pop_back(self, *args) ‑> void
pop_back(self)
def push_back(self, *args) ‑> twinline_t &
push_back(self, x)
x: twinline_t const &
def qclear(self, *args) ‑> void
qclear(self)
def reserve(self, *args) ‑> void
reserve(self, cnt)
cnt: size_t
def resize(self, *args) ‑> void
resize(self, _newsize, x)
_newsize: size_t x: twinline_t const &
resize(self, _newsize)
_newsize: size_t
def size(self, *args) ‑> size_t
size(self) -> size_t
def swap(self, *args) ‑> void
swap(self, r)
r: qvector< twinline_t > &
def truncate(self, *args) ‑> void
truncate(self)
class textctrl_info_t (text='', flags=0, tabsize=0)
Class representing textctrl_info_t

Ancestors

Subclasses

Class variables

var TXTF_ACCEPTTABS
Tab key inserts 'tabsize' spaces
var TXTF_AUTOINDENT
Auto-indent on new line
var TXTF_FIXEDFONT
The control uses IDA's fixed font
var TXTF_MODIFIED
Gets/sets the modified status
var TXTF_READONLY
Text cannot be edited (but can be selected and copied)
var TXTF_SELECTED
Shows the field with its text selected

Instance variables

var flags
Flags value
var tabsize
Returns the tabsize value
var text
Text value
var value
Alias for the text property

Methods

def assign(self, other)
Copies the contents of 'other' to 'self'

Inherited members

class twinline_t (*args)
Proxy of C++ twinline_t class.
__init__(self) -> twinline_t
t: place_t * pc: color_t bc: bgcolor_t

Instance variables

var at
twinline_t_at_get(self) -> place_t
var bg_color
twinline_t_bg_color_get(self) -> bgcolor_t
var is_default
twinline_t_is_default_get(self) -> bool
var line
twinline_t_line_get(self) -> qstring *
var prefix_color
twinline_t_prefix_color_get(self) -> color_t
class twinpos_t (*args)
Proxy of C++ twinpos_t class.
__init__(self) -> twinpos_t
t: place_t *
__init__(self, t, x0) -> twinpos_t
t: place_t * x0: int

Instance variables

var at
twinpos_t_at_get(self) -> place_t
var x
twinpos_t_x_get(self) -> int

Methods

def place(self, view)
def place_as_enumplace_t(self)
def place_as_idaplace_t(self)
def place_as_simpleline_place_t(self)
def place_as_structplace_t(self)
class ui_requests_t (*args)
Proxy of C++ ui_requests_t class.
__init__(self) -> ui_requests_t
class view_mouse_event_location_t (*args)
Proxy of C++ view_mouse_event_location_t class.
__init__(self) -> view_mouse_event_location_t

Instance variables

var ea
view_mouse_event_location_t_ea_get(self) -> ea_t
var item
view_mouse_event_location_t_item_get(self) -> selection_item_t const *
class view_mouse_event_t (*args)
Proxy of C++ view_mouse_event_t class.
__init__(self) -> view_mouse_event_t

Instance variables

var button
view_mouse_event_t_button_get(self) -> vme_button_t
var location
view_mouse_event_t_location_get(self) -> view_mouse_event_location_t
var renderer_pos
view_mouse_event_t_renderer_pos_get(self) -> renderer_pos_info_t
var rtype
view_mouse_event_t_rtype_get(self) -> tcc_renderer_type_t
var state
view_mouse_event_t_state_get(self) -> view_event_state_t
var x
view_mouse_event_t_x_get(self) -> uint32
var y
view_mouse_event_t_y_get(self) -> uint32