Module ida_kernwin

It contains:

  • the UI dispatcher notification codes (ui_notification_t)

  • convenience functions for UI services

  • structures which hold information about the lines (disassembly, structures, enums) generated by the kernel

  • functions to interact with the user (dialog boxes)

  • some string and conversion functions.

Global Variables

AA_CHECKABLE

AA_CHECKABLE = 6

AA_CHECKED

AA_CHECKED = 7

AA_ICON

AA_ICON = 4

AA_LABEL

AA_LABEL = 1

AA_NONE

AA_NONE = 0

AA_SHORTCUT

AA_SHORTCUT = 2

AA_STATE

AA_STATE = 5

AA_TOOLTIP

AA_TOOLTIP = 3

AA_VISIBILITY

AA_VISIBILITY = 8

ACF_HAS_FIELD_DIRTREE_SELECTION

ACF_HAS_FIELD_DIRTREE_SELECTION = 4

ACF_HAS_SELECTION

ACF_HAS_SELECTION = 1

ACF_HAS_SOURCE

ACF_HAS_SOURCE = 8

ACF_HAS_TYPE_REF

ACF_HAS_TYPE_REF = 16

ACF_XTRN_EA

ACF_XTRN_EA = 2

ADF_CHECKABLE

ADF_CHECKABLE = 64

ADF_CHECKED

ADF_CHECKED = 128

ADF_GLOBAL

ADF_GLOBAL = 16

ADF_NO_HIGHLIGHT

ADF_NO_HIGHLIGHT = 32

ADF_NO_UNDO

ADF_NO_UNDO = 2

ADF_OT_MASK

ADF_OT_MASK = 12

ADF_OT_PLUGIN

ADF_OT_PLUGIN = 0

ADF_OT_PLUGMOD

ADF_OT_PLUGMOD = 4

ADF_OT_PROCMOD

ADF_OT_PROCMOD = 8

ADF_OWN_HANDLER

ADF_OWN_HANDLER = 1

AHF_VERSION

AHF_VERSION = 1

AHF_VERSION_MASK

AHF_VERSION_MASK = 255

ASKBTN_BTN1

ASKBTN_BTN1 = 1

ASKBTN_BTN2

ASKBTN_BTN2 = 0

ASKBTN_BTN3

ASKBTN_BTN3 = -1

ASKBTN_CANCEL

ASKBTN_CANCEL = -1

ASKBTN_NO

ASKBTN_NO = 0

ASKBTN_YES

ASKBTN_YES = 1

AST_DISABLE

AST_DISABLE = 7

AST_DISABLE_ALWAYS

AST_DISABLE_ALWAYS = 4

AST_DISABLE_FOR_IDB

AST_DISABLE_FOR_IDB = 5

AST_DISABLE_FOR_WIDGET

AST_DISABLE_FOR_WIDGET = 6

AST_ENABLE

AST_ENABLE = 3

AST_ENABLE_ALWAYS

AST_ENABLE_ALWAYS = 0

AST_ENABLE_FOR_IDB

AST_ENABLE_FOR_IDB = 1

AST_ENABLE_FOR_WIDGET

AST_ENABLE_FOR_WIDGET = 2

BWN_ADDRWATCH

BWN_ADDRWATCH = 45

BWN_BOOKMARKS

BWN_BOOKMARKS = 57

BWN_BPTS

BWN_BPTS = 13

BWN_CALLS

BWN_CALLS = 11

BWN_CALLS_CALLEES

BWN_CALLS_CALLEES = 48

BWN_CALLS_CALLERS

BWN_CALLS_CALLERS = 47

BWN_CALL_STACK

BWN_CALL_STACK = 17

BWN_CHOOSER

BWN_CHOOSER = 35

BWN_CLI

BWN_CLI = 31

BWN_CMDPALCSR

BWN_CMDPALCSR = 41

BWN_CMDPALWIN

BWN_CMDPALWIN = 42

BWN_CPUREGS

BWN_CPUREGS = 38

BWN_CUSTVIEW

BWN_CUSTVIEW = 44

BWN_CV_LINE_INFOS

BWN_CV_LINE_INFOS = 51

BWN_DISASM

BWN_DISASM = 27

BWN_DISASMS

BWN_DISASMS = 27

BWN_DISASM_ARROWS

BWN_DISASM_ARROWS = 50

BWN_DUMP

BWN_DUMP = 28

BWN_DUMPS

BWN_DUMPS = 28

BWN_EXPORTS

BWN_EXPORTS = 0

BWN_FRAME

BWN_FRAME = 25

BWN_FUNCS

BWN_FUNCS = 3

BWN_IMPORTS

BWN_IMPORTS = 1

BWN_LOCALS

BWN_LOCALS = 33

BWN_LOCTYPS

BWN_LOCTYPS = 10

BWN_MDVIEWCSR

BWN_MDVIEWCSR = 49

BWN_MODULES

BWN_MODULES = 15

BWN_NAMES

BWN_NAMES = 2

BWN_NAVBAND

BWN_NAVBAND = 26

BWN_NOTEPAD

BWN_NOTEPAD = 29

BWN_OUTPUT

BWN_OUTPUT = 30

BWN_PROBS

BWN_PROBS = 12

BWN_PSEUDOCODE

BWN_PSEUDOCODE = 46

BWN_SCRIPTS_CSR

BWN_SCRIPTS_CSR = 56
BWN_SEARCH = 19

BWN_SEARCHS

BWN_SEARCHS = 19

BWN_SEGREGS

BWN_SEGREGS = 6

BWN_SEGS

BWN_SEGS = 5

BWN_SELS

BWN_SELS = 7

BWN_SHORTCUTCSR

BWN_SHORTCUTCSR = 36

BWN_SHORTCUTWIN

BWN_SHORTCUTWIN = 37

BWN_SIGNS

BWN_SIGNS = 8

BWN_SNIPPETS

BWN_SNIPPETS = 43

BWN_SNIPPETS_CSR

BWN_SNIPPETS_CSR = 55

BWN_SO_OFFSETS

BWN_SO_OFFSETS = 40

BWN_SO_STRUCTS

BWN_SO_STRUCTS = 39

BWN_SRCPTHMAP_CSR

BWN_SRCPTHMAP_CSR = 52

BWN_SRCPTHUND_CSR

BWN_SRCPTHUND_CSR = 53

BWN_STACK

BWN_STACK = 17

BWN_STKVIEW

BWN_STKVIEW = 34

BWN_STRINGS

BWN_STRINGS = 4

BWN_THREADS

BWN_THREADS = 14

BWN_TILIST

BWN_TILIST = 58

BWN_TILS

BWN_TILS = 9

BWN_TILVIEW

BWN_TILVIEW = 10

BWN_TRACE

BWN_TRACE = 16

BWN_UNDOHIST

BWN_UNDOHIST = 54

BWN_UNKNOWN

BWN_UNKNOWN = -1

BWN_WATCH

BWN_WATCH = 32

BWN_XREFS

BWN_XREFS = 18

CB_CANCEL

CB_CANCEL = -7

CB_CLOSE

CB_CLOSE = -3

CB_DESTROYING

CB_DESTROYING = -5

CB_INIT

CB_INIT = -1

CB_INVISIBLE

CB_INVISIBLE = -4

CB_NO

CB_NO = -6

CB_YES

CB_YES = -2

CDVF_LINEICONS

CDVF_LINEICONS = 2

CDVF_NOLINES

CDVF_NOLINES = 1

CDVF_STATUSBAR

CDVF_STATUSBAR = 4

CDVH_LINES_ALIGNMENT

CDVH_LINES_ALIGNMENT = 1009

CDVH_LINES_CLICK

CDVH_LINES_CLICK = 1002

CDVH_LINES_DBLCLICK

CDVH_LINES_DBLCLICK = 1003

CDVH_LINES_DRAWICON

CDVH_LINES_DRAWICON = 1005

CDVH_LINES_ICONMARGIN

CDVH_LINES_ICONMARGIN = 1007

CDVH_LINES_LINENUM

CDVH_LINES_LINENUM = 1006

CDVH_LINES_POPUP

CDVH_LINES_POPUP = 1004

CDVH_LINES_RADIX

CDVH_LINES_RADIX = 1008

CDVH_SRCVIEW

CDVH_SRCVIEW = 1001

CDVH_USERDATA

CDVH_USERDATA = 1000

CH2_HAS_INODE2INDEX

CH2_HAS_INODE2INDEX = 2

CH2_LAZY_LOADED

CH2_LAZY_LOADED = 1

CHCOL_DEC

CHCOL_DEC = 196608

CHCOL_DEFHIDDEN

CHCOL_DEFHIDDEN = 1048576

CHCOL_DRAGHINT

CHCOL_DRAGHINT = 2097152

CHCOL_EA

CHCOL_EA = 262144

CHCOL_FNAME

CHCOL_FNAME = 327680

CHCOL_FORMAT

CHCOL_FORMAT = 458752

CHCOL_HEX

CHCOL_HEX = 131072

CHCOL_INODENAME

CHCOL_INODENAME = 4194304

CHCOL_PATH

CHCOL_PATH = 65536

CHCOL_PLAIN

CHCOL_PLAIN = 0

CHITEM_BOLD

CHITEM_BOLD = 1

CHITEM_GRAY

CHITEM_GRAY = 16

CHITEM_ITALIC

CHITEM_ITALIC = 2

CHITEM_STRIKE

CHITEM_STRIKE = 8

CHITEM_UNDER

CHITEM_UNDER = 4

CHOOSER_MENU_EDIT

CHOOSER_MENU_EDIT = 0

CHOOSER_MENU_JUMP

CHOOSER_MENU_JUMP = 1
CHOOSER_MENU_SEARCH = 2

CHOOSER_MULTI_SELECTION

CHOOSER_MULTI_SELECTION = 2

CHOOSER_NOMAINMENU

CHOOSER_NOMAINMENU = 'NOMAINMENU\n'

CHOOSER_NOSTATUSBAR

CHOOSER_NOSTATUSBAR = 'NOSTATUSBAR\n'

CHOOSER_NO_SELECTION

CHOOSER_NO_SELECTION = 1

CHOOSER_POPUP_MENU

CHOOSER_POPUP_MENU = 4

CH_ATTRS

CH_ATTRS = 32

CH_BUILTIN_MASK

CH_BUILTIN_MASK = 33030144

CH_BUILTIN_SHIFT

CH_BUILTIN_SHIFT = 19

CH_CAN_DEL

CH_CAN_DEL = 512

CH_CAN_EDIT

CH_CAN_EDIT = 1024

CH_CAN_INS

CH_CAN_INS = 256

CH_CAN_REFRESH

CH_CAN_REFRESH = 2048

CH_FORCE_DEFAULT

CH_FORCE_DEFAULT = 128

CH_HAS_DIFF

CH_HAS_DIFF = 268435456

CH_HAS_DIRTREE

CH_HAS_DIRTREE = 33554432

CH_KEEP

CH_KEEP = 2

CH_MODAL

CH_MODAL = 1

CH_MULTI

CH_MULTI = 4

CH_MULTI_EDIT

CH_MULTI_EDIT = 8

CH_NOBTNS

CH_NOBTNS = 16

CH_NOIDB

CH_NOIDB = 64

CH_NON_PERSISTED_TREE

CH_NON_PERSISTED_TREE = -2147483648

CH_NO_FILTER

CH_NO_FILTER = 1073741824

CH_NO_SORT

CH_NO_SORT = 536870912

CH_NO_STATUS_BAR

CH_NO_STATUS_BAR = 65536

CH_QFLT

CH_QFLT = 4096

CH_QFTYP_DEFAULT

CH_QFTYP_DEFAULT = 0

CH_QFTYP_FUZZY

CH_QFTYP_FUZZY = 32768

CH_QFTYP_MASK

CH_QFTYP_MASK = 57344

CH_QFTYP_NORMAL

CH_QFTYP_NORMAL = 8192

CH_QFTYP_REGEX

CH_QFTYP_REGEX = 24576

CH_QFTYP_SHIFT

CH_QFTYP_SHIFT = 13

CH_QFTYP_WHOLE_WORDS

CH_QFTYP_WHOLE_WORDS = 16384

CH_RENAME_IS_EDIT

CH_RENAME_IS_EDIT = 262144

CH_RESTORE

CH_RESTORE = 131072

CH_TM_FOLDERS_ONLY

CH_TM_FOLDERS_ONLY = 67108864

CH_TM_FULL_TREE

CH_TM_FULL_TREE = 134217728

CH_TM_MASK

CH_TM_MASK = 201326592

CH_TM_NO_TREE

CH_TM_NO_TREE = 0

CH_TM_SHIFT

CH_TM_SHIFT = 26

CH_UNUSED

CH_UNUSED = 64

CK_EXTRA1

CK_EXTRA1 = 82

CK_EXTRA10

CK_EXTRA10 = 91

CK_EXTRA11

CK_EXTRA11 = 92

CK_EXTRA12

CK_EXTRA12 = 93

CK_EXTRA13

CK_EXTRA13 = 94

CK_EXTRA14

CK_EXTRA14 = 95

CK_EXTRA15

CK_EXTRA15 = 96

CK_EXTRA16

CK_EXTRA16 = 97

CK_EXTRA2

CK_EXTRA2 = 83

CK_EXTRA3

CK_EXTRA3 = 84

CK_EXTRA4

CK_EXTRA4 = 85

CK_EXTRA5

CK_EXTRA5 = 86

CK_EXTRA6

CK_EXTRA6 = 87

CK_EXTRA7

CK_EXTRA7 = 88

CK_EXTRA8

CK_EXTRA8 = 89

CK_EXTRA9

CK_EXTRA9 = 90

CK_TRACE

CK_TRACE = 80

CK_TRACE_OVL

CK_TRACE_OVL = 81

CLNL_FINDCMT

CLNL_FINDCMT = 4

CLNL_LTRIM

CLNL_LTRIM = 2

CLNL_RTRIM

CLNL_RTRIM = 1

CLNL_TRIM

CLNL_TRIM = 3

CREATETB_ADV

CREATETB_ADV = 1

CVH_CLICK

CVH_CLICK = 6

CVH_CLOSE

CVH_CLOSE = 5

CVH_CURPOS

CVH_CURPOS = 4

CVH_DBLCLICK

CVH_DBLCLICK = 3

CVH_HELP

CVH_HELP = 8

CVH_KEYDOWN

CVH_KEYDOWN = 1

CVH_MOUSEMOVE

CVH_MOUSEMOVE = 9

CVH_POPUP

CVH_POPUP = 2

CVH_QT_AWARE

CVH_QT_AWARE = 7

CVH_USERDATA

CVH_USERDATA = 0

CVLF_USE_MOUSE

CVLF_USE_MOUSE = 1

CVNF_ACT

CVNF_ACT = 4

CVNF_JUMP

CVNF_JUMP = 2

CVNF_LAZY

CVNF_LAZY = 1

DEFAULT_PLACE_LNNUM

DEFAULT_PLACE_LNNUM = -1

DP_BEFORE

DP_BEFORE = 32

DP_BOTTOM

DP_BOTTOM = 8

DP_FLOATING

DP_FLOATING = 128

DP_INSIDE

DP_INSIDE = 16

DP_LEFT

DP_LEFT = 1

DP_RIGHT

DP_RIGHT = 4

DP_SZHINT

DP_SZHINT = 256

DP_TAB

DP_TAB = 64

DP_TOP

DP_TOP = 2

GCRF_ALL

GCRF_ALL = 9223372036854775811

GCRF_CURRENT

GCRF_CURRENT = 9223372036854775810

GCRF_HEADER

GCRF_HEADER = 9223372036854775808

GCRF_HIGH_BIT

GCRF_HIGH_BIT = 9223372036854775808

GCRF_SELECTION

GCRF_SELECTION = 9223372036854775809

HIF_IDENTIFIER

HIF_IDENTIFIER = 1

HIF_LOCKED

HIF_LOCKED = 4

HIF_NOCASE

HIF_NOCASE = 8

HIF_REGISTER

HIF_REGISTER = 2

HIF_SLOT_0

HIF_SLOT_0 = 134217728

HIF_SLOT_1

HIF_SLOT_1 = 402653184

HIF_SLOT_2

HIF_SLOT_2 = 671088640

HIF_SLOT_3

HIF_SLOT_3 = 939524096

HIF_SLOT_4

HIF_SLOT_4 = 1207959552

HIF_SLOT_5

HIF_SLOT_5 = 1476395008

HIF_SLOT_6

HIF_SLOT_6 = 1744830464

HIF_SLOT_7

HIF_SLOT_7 = 2013265920

HIF_SLOT_SHIFT

HIF_SLOT_SHIFT = 28

HIF_USE_SLOT

HIF_USE_SLOT = 134217728

HIST_CMD

HIST_CMD = 7

HIST_CMT

HIST_CMT = 2

HIST_DIR

HIST_DIR = 8

HIST_FILE

HIST_FILE = 5

HIST_IDENT

HIST_IDENT = 4

HIST_IDENT2

HIST_IDENT2 = 9

HIST_SEG

HIST_SEG = 1

HIST_SRCH

HIST_SRCH = 3

HIST_TYPE

HIST_TYPE = 6

IDALIB_API_MAGIC

IDALIB_API_MAGIC = 8339911660797952

IDA_DEBUG_ACCESSIBILITY

IDA_DEBUG_ACCESSIBILITY = 524288

IDA_DEBUG_ALREADY

IDA_DEBUG_ALREADY = 8192

IDA_DEBUG_ALWAYS

IDA_DEBUG_ALWAYS = -1

IDA_DEBUG_APPCALL

IDA_DEBUG_APPCALL = 131072

IDA_DEBUG_CHECKMEM

IDA_DEBUG_CHECKMEM = 256

IDA_DEBUG_CONFIG

IDA_DEBUG_CONFIG = 128

IDA_DEBUG_DBGINFO

IDA_DEBUG_DBGINFO = 4194304

IDA_DEBUG_DEBUGGER

IDA_DEBUG_DEBUGGER = 65536

IDA_DEBUG_DEMANGLE

IDA_DEBUG_DEMANGLE = 1024

IDA_DEBUG_DREFS

IDA_DEBUG_DREFS = 1

IDA_DEBUG_FLIRT

IDA_DEBUG_FLIRT = 4

IDA_DEBUG_IDP

IDA_DEBUG_IDP = 8

IDA_DEBUG_IDS

IDA_DEBUG_IDS = 64

IDA_DEBUG_INTERNET

IDA_DEBUG_INTERNET = 1048576

IDA_DEBUG_LDR

IDA_DEBUG_LDR = 16

IDA_DEBUG_LICENSE

IDA_DEBUG_LICENSE = 512

IDA_DEBUG_LUMINA

IDA_DEBUG_LUMINA = 8388608

IDA_DEBUG_NETWORK

IDA_DEBUG_NETWORK = 1048576

IDA_DEBUG_NOTIFY

IDA_DEBUG_NOTIFY = 32768

IDA_DEBUG_OFFSET

IDA_DEBUG_OFFSET = 2

IDA_DEBUG_PLUGIN

IDA_DEBUG_PLUGIN = 32

IDA_DEBUG_QUEUE

IDA_DEBUG_QUEUE = 2048

IDA_DEBUG_RANGECB

IDA_DEBUG_RANGECB = 134217728

IDA_DEBUG_REGEX

IDA_DEBUG_REGEX = 33554432

IDA_DEBUG_ROLLBACK

IDA_DEBUG_ROLLBACK = 4096

IDA_DEBUG_SIMPLEX

IDA_DEBUG_SIMPLEX = 2097152

IDA_DEBUG_SRCDBG

IDA_DEBUG_SRCDBG = 262144

IDA_DEBUG_SUBPROC

IDA_DEBUG_SUBPROC = 67108864

IDA_DEBUG_THEMES

IDA_DEBUG_THEMES = 16777216

IDA_DEBUG_TIL

IDA_DEBUG_TIL = 16384

IDCHK_ARG

IDCHK_ARG = -1

IDCHK_KEY

IDCHK_KEY = -2

IDCHK_MAX

IDCHK_MAX = -3

IDCHK_OK

IDCHK_OK = 0

IK_ADD

IK_ADD = 107

IK_APPS

IK_APPS = 93

IK_BACK

IK_BACK = 8

IK_BROWSER_BACK

IK_BROWSER_BACK = 166

IK_BROWSER_FAVORITES

IK_BROWSER_FAVORITES = 171

IK_BROWSER_FORWARD

IK_BROWSER_FORWARD = 167

IK_BROWSER_HOME

IK_BROWSER_HOME = 172

IK_BROWSER_REFRESH

IK_BROWSER_REFRESH = 168
IK_BROWSER_SEARCH = 170

IK_BROWSER_STOP

IK_BROWSER_STOP = 169

IK_CANCEL

IK_CANCEL = 3

IK_CAPITAL

IK_CAPITAL = 20

IK_CLEAR

IK_CLEAR = 12

IK_CONTROL

IK_CONTROL = 17

IK_DECIMAL

IK_DECIMAL = 110

IK_DELETE

IK_DELETE = 46

IK_DIVIDE

IK_DIVIDE = 111

IK_DOWN

IK_DOWN = 40

IK_END

IK_END = 35

IK_ESCAPE

IK_ESCAPE = 27

IK_EXECUTE

IK_EXECUTE = 43

IK_F1

IK_F1 = 112

IK_F10

IK_F10 = 121

IK_F11

IK_F11 = 122

IK_F12

IK_F12 = 123

IK_F13

IK_F13 = 124

IK_F14

IK_F14 = 125

IK_F15

IK_F15 = 126

IK_F16

IK_F16 = 127

IK_F17

IK_F17 = 128

IK_F18

IK_F18 = 129

IK_F19

IK_F19 = 130

IK_F2

IK_F2 = 113

IK_F20

IK_F20 = 131

IK_F21

IK_F21 = 132

IK_F22

IK_F22 = 133

IK_F23

IK_F23 = 134

IK_F24

IK_F24 = 135

IK_F3

IK_F3 = 114

IK_F4

IK_F4 = 115

IK_F5

IK_F5 = 116

IK_F6

IK_F6 = 117

IK_F7

IK_F7 = 118

IK_F8

IK_F8 = 119

IK_F9

IK_F9 = 120

IK_HELP

IK_HELP = 47

IK_HOME

IK_HOME = 36

IK_INSERT

IK_INSERT = 45

IK_KANA

IK_KANA = 21

IK_LAUNCH_APP1

IK_LAUNCH_APP1 = 182

IK_LAUNCH_APP2

IK_LAUNCH_APP2 = 183

IK_LAUNCH_MAIL

IK_LAUNCH_MAIL = 180

IK_LAUNCH_MEDIA_SELECT

IK_LAUNCH_MEDIA_SELECT = 181

IK_LCONTROL

IK_LCONTROL = 162

IK_LEFT

IK_LEFT = 37

IK_LMENU

IK_LMENU = 164

IK_LSHIFT

IK_LSHIFT = 160

IK_LWIN

IK_LWIN = 91

IK_MEDIA_NEXT_TRACK

IK_MEDIA_NEXT_TRACK = 176

IK_MEDIA_PLAY_PAUSE

IK_MEDIA_PLAY_PAUSE = 179

IK_MEDIA_PREV_TRACK

IK_MEDIA_PREV_TRACK = 177

IK_MEDIA_STOP

IK_MEDIA_STOP = 178

IK_MENU

IK_MENU = 18

IK_MODECHANGE

IK_MODECHANGE = 31

IK_MULTIPLY

IK_MULTIPLY = 106

IK_NEXT

IK_NEXT = 34

IK_NUMLOCK

IK_NUMLOCK = 144

IK_NUMPAD0

IK_NUMPAD0 = 96

IK_NUMPAD1

IK_NUMPAD1 = 97

IK_NUMPAD2

IK_NUMPAD2 = 98

IK_NUMPAD3

IK_NUMPAD3 = 99

IK_NUMPAD4

IK_NUMPAD4 = 100

IK_NUMPAD5

IK_NUMPAD5 = 101

IK_NUMPAD6

IK_NUMPAD6 = 102

IK_NUMPAD7

IK_NUMPAD7 = 103

IK_NUMPAD8

IK_NUMPAD8 = 104

IK_NUMPAD9

IK_NUMPAD9 = 105

IK_OEM_1

IK_OEM_1 = 186

IK_OEM_102

IK_OEM_102 = 226

IK_OEM_2

IK_OEM_2 = 191

IK_OEM_3

IK_OEM_3 = 192

IK_OEM_4

IK_OEM_4 = 219

IK_OEM_5

IK_OEM_5 = 220

IK_OEM_6

IK_OEM_6 = 221

IK_OEM_7

IK_OEM_7 = 222

IK_OEM_CLEAR

IK_OEM_CLEAR = 254

IK_OEM_COMMA

IK_OEM_COMMA = 188

IK_OEM_FJ_MASSHOU

IK_OEM_FJ_MASSHOU = 147

IK_OEM_FJ_TOUROKU

IK_OEM_FJ_TOUROKU = 148

IK_OEM_MINUS

IK_OEM_MINUS = 189

IK_OEM_PERIOD

IK_OEM_PERIOD = 190

IK_OEM_PLUS

IK_OEM_PLUS = 187

IK_PAUSE

IK_PAUSE = 19

IK_PLAY

IK_PLAY = 250

IK_PRINT

IK_PRINT = 42

IK_PRIOR

IK_PRIOR = 33

IK_RCONTROL

IK_RCONTROL = 163

IK_RETURN

IK_RETURN = 13

IK_RIGHT

IK_RIGHT = 39

IK_RMENU

IK_RMENU = 165

IK_RSHIFT

IK_RSHIFT = 161

IK_RWIN

IK_RWIN = 92

IK_SCROLL

IK_SCROLL = 145

IK_SELECT

IK_SELECT = 41

IK_SEPARATOR

IK_SEPARATOR = 108

IK_SHIFT

IK_SHIFT = 16

IK_SLEEP

IK_SLEEP = 95

IK_SNAPSHOT

IK_SNAPSHOT = 44

IK_SPACE

IK_SPACE = 32

IK_SUBTRACT

IK_SUBTRACT = 109

IK_TAB

IK_TAB = 9

IK_UP

IK_UP = 38

IK_VOLUME_DOWN

IK_VOLUME_DOWN = 174

IK_VOLUME_MUTE

IK_VOLUME_MUTE = 173

IK_VOLUME_UP

IK_VOLUME_UP = 175

IK_ZOOM

IK_ZOOM = 251

IWID_ADDRWATCH

IWID_ADDRWATCH = 35184372088832

IWID_ALL

IWID_ALL = 18446744073709551615

IWID_BOOKMARKS

IWID_BOOKMARKS = 144115188075855872

IWID_BPTS

IWID_BPTS = 8192

IWID_CALLS

IWID_CALLS = 2048

IWID_CALLS_CALLEES

IWID_CALLS_CALLEES = 281474976710656

IWID_CALLS_CALLERS

IWID_CALLS_CALLERS = 140737488355328

IWID_CALL_STACK

IWID_CALL_STACK = 131072

IWID_CHOOSER

IWID_CHOOSER = 34359738368

IWID_CLI

IWID_CLI = 2147483648

IWID_CMDPALCSR

IWID_CMDPALCSR = 2199023255552

IWID_CMDPALWIN

IWID_CMDPALWIN = 4398046511104

IWID_CPUREGS

IWID_CPUREGS = 274877906944

IWID_CUSTVIEW

IWID_CUSTVIEW = 17592186044416

IWID_CV_LINE_INFOS

IWID_CV_LINE_INFOS = 2251799813685248

IWID_DISASM

IWID_DISASM = 134217728

IWID_DISASMS

IWID_DISASMS = 134217728

IWID_DISASM_ARROWS

IWID_DISASM_ARROWS = 1125899906842624

IWID_DUMP

IWID_DUMP = 268435456

IWID_DUMPS

IWID_DUMPS = 268435456

IWID_EXPORTS

IWID_EXPORTS = 1

IWID_FRAME

IWID_FRAME = 33554432

IWID_FUNCS

IWID_FUNCS = 8

IWID_IMPORTS

IWID_IMPORTS = 2

IWID_LOCALS

IWID_LOCALS = 8589934592

IWID_LOCTYPS

IWID_LOCTYPS = 1024

IWID_MDVIEWCSR

IWID_MDVIEWCSR = 562949953421312

IWID_MODULES

IWID_MODULES = 32768

IWID_NAMES

IWID_NAMES = 4

IWID_NAVBAND

IWID_NAVBAND = 67108864

IWID_NOTEPAD

IWID_NOTEPAD = 536870912

IWID_OUTPUT

IWID_OUTPUT = 1073741824

IWID_PROBS

IWID_PROBS = 4096

IWID_PSEUDOCODE

IWID_PSEUDOCODE = 70368744177664

IWID_SCRIPTS_CSR

IWID_SCRIPTS_CSR = 72057594037927936
IWID_SEARCH = 524288

IWID_SEARCHS

IWID_SEARCHS = 524288

IWID_SEGREGS

IWID_SEGREGS = 64

IWID_SEGS

IWID_SEGS = 32

IWID_SELS

IWID_SELS = 128

IWID_SHORTCUTCSR

IWID_SHORTCUTCSR = 68719476736

IWID_SHORTCUTWIN

IWID_SHORTCUTWIN = 137438953472

IWID_SIGNS

IWID_SIGNS = 256

IWID_SNIPPETS

IWID_SNIPPETS = 8796093022208

IWID_SNIPPETS_CSR

IWID_SNIPPETS_CSR = 36028797018963968

IWID_SO_OFFSETS

IWID_SO_OFFSETS = 1099511627776

IWID_SO_STRUCTS

IWID_SO_STRUCTS = 549755813888

IWID_SRCPTHMAP_CSR

IWID_SRCPTHMAP_CSR = 4503599627370496

IWID_SRCPTHUND_CSR

IWID_SRCPTHUND_CSR = 9007199254740992

IWID_STACK

IWID_STACK = 131072

IWID_STKVIEW

IWID_STKVIEW = 17179869184

IWID_STRINGS

IWID_STRINGS = 16

IWID_THREADS

IWID_THREADS = 16384

IWID_TILIST

IWID_TILIST = 288230376151711744

IWID_TILS

IWID_TILS = 512

IWID_TILVIEW

IWID_TILVIEW = 1024

IWID_TRACE

IWID_TRACE = 65536

IWID_UNDOHIST

IWID_UNDOHIST = 18014398509481984

IWID_WATCH

IWID_WATCH = 4294967296

IWID_XREFS

IWID_XREFS = 262144

LECVT_CANCELED

LECVT_CANCELED = -1

LECVT_ERROR

LECVT_ERROR = 0

LECVT_OK

LECVT_OK = 1

LECVT_WITHIN_LISTING

LECVT_WITHIN_LISTING = 1

LROEF_CPS_RANGE

LROEF_CPS_RANGE = 1

LROEF_FULL_LINE

LROEF_FULL_LINE = 0

LROEF_MASK

LROEF_MASK = 16777215

MAX_SPACES_ADDED

MAX_SPACES_ADDED = 524288

MFF_FAST

MFF_FAST = 0

MFF_NOWAIT

MFF_NOWAIT = 4

MFF_READ

MFF_READ = 1

MFF_WRITE

MFF_WRITE = 2

PCF_EA_CAPABLE

PCF_EA_CAPABLE = 1

PCF_MAKEPLACE_ALLOCATES

PCF_MAKEPLACE_ALLOCATES = 2

REG_HINTS_MARKER

REG_HINTS_MARKER = '\x01\x7f'

REG_HINTS_MARKER_LEN

REG_HINTS_MARKER_LEN = 2

RENADDR_HR

RENADDR_HR = 1

RENADDR_IDA

RENADDR_IDA = 0

S2EAOPT_NOCALC

S2EAOPT_NOCALC = 1

SETMENU_APP

SETMENU_APP = 1

SETMENU_ENSURE_SEP

SETMENU_ENSURE_SEP = 8

SETMENU_FIRST

SETMENU_FIRST = 2

SETMENU_IF_ENABLED

SETMENU_IF_ENABLED = 4

SETMENU_INS

SETMENU_INS = 0

SETMENU_POSMASK

SETMENU_POSMASK = 3

SRCDBG_HINTS_MARKER

SRCDBG_HINTS_MARKER = '\x01~'

SRCDBG_HINTS_MARKER_LEN

SRCDBG_HINTS_MARKER_LEN = 2

SVF_COPY_LINES

SVF_COPY_LINES = 0

SVF_LINES_BYPTR

SVF_LINES_BYPTR = 1

TCCPT_IDAPLACE

TCCPT_IDAPLACE = 3

TCCPT_INVALID

TCCPT_INVALID = 0

TCCPT_PLACE

TCCPT_PLACE = 1

TCCPT_SIMPLELINE_PLACE

TCCPT_SIMPLELINE_PLACE = 2

TCCPT_TIPLACE

TCCPT_TIPLACE = 4

TCCRT_FLAT

TCCRT_FLAT = 1

TCCRT_GRAPH

TCCRT_GRAPH = 2

TCCRT_INVALID

TCCRT_INVALID = 0

TCCRT_PROXIMITY

TCCRT_PROXIMITY = 3

UIJMP_ACTIVATE

UIJMP_ACTIVATE = 1

UIJMP_ANYVIEW

UIJMP_ANYVIEW = 0

UIJMP_DONTPUSH

UIJMP_DONTPUSH = 2

UIJMP_IDAVIEW

UIJMP_IDAVIEW = 4

UIJMP_IDAVIEW_NEW

UIJMP_IDAVIEW_NEW = 8

UIJMP_VIEWMASK

UIJMP_VIEWMASK = 12

VES_ALT

VES_ALT = 2

VES_CTRL

VES_CTRL = 4

VES_META

VES_META = 128

VES_MOUSE_LEFT

VES_MOUSE_LEFT = 8

VES_MOUSE_MIDDLE

VES_MOUSE_MIDDLE = 32

VES_MOUSE_RIGHT

VES_MOUSE_RIGHT = 16

VES_SHIFT

VES_SHIFT = 1

VME_LEFT_BUTTON

VME_LEFT_BUTTON = 1

VME_MID_BUTTON

VME_MID_BUTTON = 3

VME_RIGHT_BUTTON

VME_RIGHT_BUTTON = 2

VME_UNKNOWN

VME_UNKNOWN = 0

WCLS_CLOSE_LATER

WCLS_CLOSE_LATER = 8

WCLS_DELETE_LATER

WCLS_DELETE_LATER = 8

WCLS_DONT_SAVE_SIZE

WCLS_DONT_SAVE_SIZE = 4

WCLS_NO_CONTEXT

WCLS_NO_CONTEXT = 2

WCLS_SAVE

WCLS_SAVE = 1

WOPN_CLOSED_BY_ESC

WOPN_CLOSED_BY_ESC = 128

WOPN_DP_BEFORE

WOPN_DP_BEFORE = 2097152

WOPN_DP_BOTTOM

WOPN_DP_BOTTOM = 524288

WOPN_DP_FLOATING

WOPN_DP_FLOATING = 8388608

WOPN_DP_INSIDE

WOPN_DP_INSIDE = 1048576

WOPN_DP_INSIDE_BEFORE

WOPN_DP_INSIDE_BEFORE = 3145728

WOPN_DP_LEFT

WOPN_DP_LEFT = 65536

WOPN_DP_MASK

WOPN_DP_MASK = 268369920

WOPN_DP_RIGHT

WOPN_DP_RIGHT = 262144

WOPN_DP_SHIFT

WOPN_DP_SHIFT = 16

WOPN_DP_SZHINT

WOPN_DP_SZHINT = 16777216

WOPN_DP_TAB

WOPN_DP_TAB = 4194304

WOPN_DP_TAB_BEFORE

WOPN_DP_TAB_BEFORE = 6291456

WOPN_DP_TOP

WOPN_DP_TOP = 131072

WOPN_NOT_CLOSED_BY_ESC

WOPN_NOT_CLOSED_BY_ESC = 256

WOPN_PERSIST

WOPN_PERSIST = 64

WOPN_RESTORE

WOPN_RESTORE = 4

beep_default

beep_default = 0

chtype_entry

chtype_entry = 2

chtype_enum

chtype_enum = 12

chtype_enum_by_value_and_size

chtype_enum_by_value_and_size = 13

chtype_func

chtype_func = 6

chtype_generic

chtype_generic = 0

chtype_idasgn

chtype_idasgn = 1

chtype_idatil

chtype_idatil = 9

chtype_name

chtype_name = 3

chtype_segm

chtype_segm = 7

chtype_srcp

chtype_srcp = 10

chtype_stkvar_xref

chtype_stkvar_xref = 4

chtype_strpath

chtype_strpath = 8

chtype_struct

chtype_struct = 11

chtype_xref

chtype_xref = 5

iek_key_press

iek_key_press = 2

iek_key_release

iek_key_release = 3

iek_mouse_button_press

iek_mouse_button_press = 4

iek_mouse_button_release

iek_mouse_button_release = 5

iek_mouse_wheel

iek_mouse_wheel = 6

iek_shortcut

iek_shortcut = 1

iek_unknown

iek_unknown = 0

mbox_error

mbox_error = 3

mbox_feedback

mbox_feedback = 5

mbox_filestruct

mbox_filestruct = 8

mbox_hide

mbox_hide = 10

mbox_info

mbox_info = 1

mbox_internal

mbox_internal = 0

mbox_nomem

mbox_nomem = 4

mbox_readerror

mbox_readerror = 6

mbox_replace

mbox_replace = 11

mbox_wait

mbox_wait = 9

mbox_warning

mbox_warning = 2

mbox_writeerror

mbox_writeerror = 7

msg_activated

msg_activated = 0

msg_click

msg_click = 2

msg_closed

msg_closed = 4

msg_dblclick

msg_dblclick = 3

msg_deactivated

msg_deactivated = 1

msg_keydown

msg_keydown = 5

nat_auto

nat_auto = 9

nat_cod

nat_cod = 2

nat_cur

nat_cur = 8

nat_dat

nat_dat = 3

nat_err

nat_err = 6

nat_ext

nat_ext = 5

nat_fun

nat_fun = 1

nat_gap

nat_gap = 7

nat_hlo

nat_hlo = 11

nat_last

nat_last = 12

nat_lib

nat_lib = 0

nat_lum

nat_lum = 10

nat_und

nat_und = 4

view_activated

view_activated = 0

view_click

view_click = 3

view_close

view_close = 7

view_created

view_created = 6

view_curpos

view_curpos = 5

view_dblclick

view_dblclick = 4

view_deactivated

view_deactivated = 1

view_keydown

view_keydown = 2

view_loc_changed

view_loc_changed = 10

view_mouse_moved

view_mouse_moved = 11

view_mouse_over

view_mouse_over = 9

view_switched

view_switched = 8

Functions

TWidget__from_ptrval__(ptrval: size_t) ‑> TWidget *

TWidget__from_ptrval__(ptrval) -> TWidget *

ptrval: size_t

activate_widget(widget: TWidget *, take_focus: bool) ‑> void

activate_widget(widget, take_focus) Activate widget (only gui version) (ui_activate_widget).

widget: (C++: TWidget *) existing widget to display
take_focus: (C++: bool) give focus to given widget

add_hotkey(hotkey: char const *, pyfunc: PyObject *) ‑> PyObject *

add_hotkey(hotkey, pyfunc) -> PyCapsule 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.

add_idc_hotkey(hotkey: char const *, idcfunc: char const *) ‑> int

add_idc_hotkey(hotkey, idcfunc) -> int Add hotkey for IDC function (ui_add_idckey).

hotkey: (C++: const char *) hotkey name
idcfunc: (C++: const char *) IDC function name
return: IDC hotkey error codes

add_spaces(s: char const *, len: size_t) ‑> PyObject *

add_spaces(s, len) -> str 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'.

str: (C++: char *) pointer to colored string to modify (may not be nullptr)
len: (C++: ssize_t) the desired length of the string
return: pointer to the end of input string

addon_count() ‑> int

addon_count() -> int Get number of installed addons.

analyzer_options() ‑> void

analyzer_options() Allow the user to set analyzer options. (show a dialog box) (ui_analyzer_options)

ask_addr(defval, format)

Output a formatted string to the output window (msg) preprended with "**DATABASE IS CORRUPTED: " Display a dialog box and wait for the user to input an address (ui_ask_addr).

retval 0: the user pressed Esc.
retval 1: ok, the user entered an address

ask_buttons(*args) ‑> int

ask_buttons(Yes, No, Cancel, deflt, format) -> int Display a dialog box and get choice from maximum three possibilities (ui_ask_buttons). note: for all buttons:

  • use "" or nullptr to take the default name for the button.

  • prepend "HIDECANCEL\n" in 'format' to hide the Cancel button

Yes: (C++: const char *) text for the first button
No: (C++: const char *) text for the second button
Cancel: (C++: const char *) text for the third button
deflt: (C++: int) default choice: one of Button IDs
format: (C++: const char *) printf-style format string for question. It may have some
              prefixes, see below.
return: one of Button IDs specifying the selected button (Esc key returns
        Cancel/3rd button value)

ask_file(*args) ‑> char *

ask_file(for_saving, defval, format) -> char *

for_saving: bool
defval: char const *
format: char const *

ask_for_feedback(*args) ‑> void

ask_for_feedback(format) Show a message box asking to send the input file to \link{mailto:support@hex- rays.com,support@hex-rays.com}.

format: (C++: const char *) the reason why the input file is bad

ask_form(*args)

Display a dialog box and wait for the user. If the form contains the "BUTTON NO

" keyword, then the return values are the same as in the ask_yn() function (Button IDs) retval 0: no memory to display or form syntax error (a warning is displayed in this case). the user pressed the 'No' button (if the form has it) or the user cancelled the dialog otherwise. all variables retain their original values. retval 1: ok, all input fields are filled and validated. retval -1: the form has the 'No' button and the user cancelled the dialog

ask_ident(defval, format)

Display a dialog box and wait for the user to input an identifier. If the user enters a non-valid identifier, this function displays a warning and allows the user to correct it. CPU register names are usually forbidden.

return: false if the user cancelled the dialog, otherwise returns true.

ask_ident2(*args) ‑> bool

ask_ident2(str, format) -> bool Display a dialog box and wait for the user to input an identifier. If the user enters a non-valid identifier, this function displays a warning and allows the user to correct it. CPU register names are permitted.

str: (C++: qstring *) qstring to fill. Can contain the default value. Cannot be nullptr.
format: (C++: const char *) printf() style format string with the question
return: false if the user cancelled the dialog, otherwise returns true.

ask_long(defval, format)

Display a dialog box and wait for the user to input an number (ui_ask_long). The number is represented in C-style. This function allows to enter any IDC expression and properly calculates it.

retval 0: if the user pressed Esc.
retval 1: ok, the user entered a valid number.

ask_seg(defval, format)

Display a dialog box and wait for the user to input an segment name (ui_ask_seg). This function allows to enter segment register names, segment base paragraphs, segment names to denote a segment.

retval 0: if the user pressed Esc.
retval 1: ok, the user entered an segment name

ask_str(defval: qstring *, hist: int, prompt: char const *) ‑> PyObject *

ask_str(defval, hist, prompt) -> str or None Asks for a long text

defval: The default value
hist: history id
prompt: The prompt value
return: None or the entered string

ask_text(max_size: size_t, defval: char const *, prompt: char const *) ‑> PyObject *

ask_text(max_size, defval, prompt) -> str 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

ask_yn(*args) ‑> int

ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel".

deflt: (C++: int) default choice: one of Button IDs
format: (C++: const char *) The question in printf() style format
return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL.

atoea(str: char const *) ‑> uint64 *

atoea(str) -> bool Convert a number in C notation to an address. decimal: 1234 octal: 0123 hexadecimal: 0xabcd binary: 0b00101010

str: (C++: const char *) the string to parse

attach_action_to_menu(menupath: char const *, name: char const *, flags: int = 0) ‑> bool

attach_action_to_menu(menupath, name, flags=0) -> bool Attach a previously-registered action to the menu (ui_attach_action_to_menu). note: 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).

menupath: (C++: const char *) 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 name: (C++: const char *) the action name flags: (C++: int) a combination of Set menu flags, to determine menu item position return: success

attach_action_to_popup(widget: TWidget *, popup_handle: TPopupMenu *, name: char const *, popuppath: char const * = None, flags: int = 0) ‑> bool

attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> 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'.

widget: (C++: TWidget *) target widget
popup_handle: (C++: TPopupMenu *) target popup menu
  • if non-nullptr, the action is added to this popup menu invocation (i.e., 'single-shot')

  • if nullptr, the action is added to a list of actions that should always be present in context menus for this widget (i.e., 'permanent'.) name: (C++: const char *) action name popuppath: (C++: const char *) can be nullptr flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) return: success

attach_action_to_toolbar(toolbar_name: char const *, name: char const *) ‑> bool

attach_action_to_toolbar(toolbar_name, name) -> bool Attach an action to an existing toolbar (ui_attach_action_to_toolbar).

toolbar_name: (C++: const char *) the name of the toolbar
name: (C++: const char *) the action name
return: success

attach_dynamic_action_to_popup(unused: TWidget *, popup_handle: TPopupMenu *, desc: action_desc_t, popuppath: char const * = None, flags: int = 0) ‑> bool

attach_dynamic_action_to_popup(unused, popup_handle, desc, popuppath=None, flags=0) -> bool Create & insert an action into the widget's popup menu (::ui_attach_dynamic_action_to_popup). Note: The action description in the 'desc' parameter is modified by this call so you should prepare a new description for each call. For example: desc = idaapi.action_desc_t(None, 'Dynamic popup action', Handler()) idaapi.attach_dynamic_action_to_popup(form, popup, desc)

unused: deprecated; should be None
popup_handle: target popup
desc: action description of type action_desc_t
popuppath: can be None
flags: a combination of SETMENU_ constants
return: success

banner(wait) -> bool Show a banner dialog box (ui_banner).

wait: (C++: int) time to wait before closing
retval 1: ok
retval 0: esc was pressed

beep(beep_type: beep_t = 0) ‑> void

beep(beep_type=beep_default) Issue a beeping sound (ui_beep).

beep_type: (C++: beep_t)

call_nav_colorizer(dict: PyObject *, ea: ea_t, nbytes: asize_t) ‑> 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().

dict: PyObject *
ea: ea_t
nbytes: asize_t

cancel_exec_request(req_id: int) ‑> bool

cancel_exec_request(req_id) -> bool Try to cancel an asynchronous exec request (ui_cancel_exec_request).

req_id: (C++: int) request id
retval true: successfully canceled
retval false: request has already been processed.

cancel_thread_exec_requests(tid: __qthread_t) ‑> int

cancel_thread_exec_requests(tid) -> int Try to cancel asynchronous exec requests created by the specified thread.

tid: (C++: qthread_t) thread id
return: number of the canceled requests.

choose_activate(_self: PyObject *) ‑> void

choose_activate(_self)

self: PyObject *

choose_choose(_self: PyObject *) ‑> PyObject *

choose_choose(_self) -> PyObject *

self: PyObject *

choose_close(_self: PyObject *) ‑> void

choose_close(_self)

self: PyObject *

choose_create_embedded_chobj(_self: PyObject *) ‑> PyObject *

choose_create_embedded_chobj(_self) -> PyObject *

self: PyObject *

choose_entry(title: char const *) ‑> ea_t

choose_entry(title) -> ea_t Choose an entry point (ui_choose, chtype_entry).

title: (C++: const char *) chooser title
return: ea of selected entry point, BADADDR if none selected

choose_enum(out: tinfo_t, title: char const *, default_ord: uint32) ‑> bool

choose_enum(out, title, default_ord) -> bool Choose an enum (ui_choose, chtype_enum).

out: (C++: tinfo_t *) the selected enum type
title: (C++: const char *) chooser title
default_ord: (C++: uint32) ordinal of enum to select by default
retval true: the selected type is in OUT
retval false: nothing was selected

choose_enum_by_value(out: tinfo_t, title: char const *, default_ord: uint32, value: uint64, nbytes: int) ‑> uchar *

choose_enum_by_value(out, title, default_ord, value, nbytes) -> bool 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.

out: (C++: tinfo_t *) the selected enum type
title: (C++: const char *) chooser title
default_ord: (C++: uint32) ordinal of enum to select by default
value: (C++: uint64) value to search for
nbytes: (C++: int) size of value
retval true: the selected type is in OUT
retval false: nothing was selected

choose_find(title: char const *) ‑> PyObject *

choose_find(title) -> MyChoose or None

title: char const *

choose_func(title: char const *, default_ea: ea_t) ‑> func_t *

choose_func(title, default_ea) -> func_t * Choose a function (ui_choose, chtype_func).

title: (C++: const char *) chooser title
default_ea: (C++: ea_t) ea of function to select by default
return: pointer to function that was selected, nullptr if none selected

choose_get_widget(_self: PyObject *) ‑> TWidget *

choose_get_widget(_self) -> TWidget *

self: PyObject *

choose_idasgn() ‑> PyObject *

choose_idasgn() -> PyObject * Opens the signature chooser

return: None or the selected signature name

choose_name(title: char const *) ‑> ea_t

choose_name(title) -> ea_t Choose a name (ui_choose, chtype_name).

title: (C++: const char *) chooser title
return: ea of selected name, BADADDR if none selected

choose_refresh(_self: PyObject *) ‑> void

choose_refresh(_self)

self: PyObject *

choose_segm(title: char const *, default_ea: ea_t) ‑> segment_t *

choose_segm(title, default_ea) -> segment_t * Choose a segment (ui_choose, chtype_segm).

title: (C++: const char *) chooser title
default_ea: (C++: ea_t) ea of segment to select by default
return: pointer to segment that was selected, nullptr if none selected

choose_srcp(title: char const *) ‑> sreg_range_t *

choose_srcp(title) -> sreg_range_t * Choose a segment register change point (ui_choose, chtype_srcp).

title: (C++: const char *) chooser title
return: pointer to segment register range of selected change point, nullptr if
        none selected

choose_stkvar_xref(pfn: func_t *, srkvar_tid: tid_t) ‑> ea_t

choose_stkvar_xref(pfn, srkvar_tid) -> ea_t Choose an xref to a stack variable (ui_choose, chtype_name).

pfn: (C++: func_t *) function
srkvar_tid: (C++: tid_t) frame variable TID
return: ea of the selected xref, BADADDR if none selected

choose_struct(out: tinfo_t, title: char const *) ‑> bool

choose_struct(out, title) -> bool Choose a structure (ui_choose, chtype_struct).

out: (C++: tinfo_t *) the selected structure type
title: (C++: const char *) chooser title
retval true: the selected type is in OUT
retval false: nothing was selected

choose_til() ‑> qstring *

choose_til() -> str Choose a type library (ui_choose, chtype_idatil).

retval true: 'buf' was filled with the name of the selected til
retval false: otherwise

choose_xref(to: ea_t) ‑> ea_t

choose_xref(to) -> ea_t Choose an xref to an address (ui_choose, chtype_xref).

to: (C++: ea_t) referenced address
return: ea of selected xref, BADADDR if none selected

clear_refresh_request(mask: uint64) ‑> void

clear_refresh_request(mask)

mask: uint64

close_chooser(title: char const *) ‑> bool

close_chooser(title) -> bool Close a non-modal chooser (ui_close_chooser).

title: (C++: const char *) window title of chooser to close
return: success

close_widget(widget: TWidget *, options: int) ‑> void

close_widget(widget, options) Close widget (ui_close_widget, only gui version).

widget: (C++: TWidget *) pointer to the widget to close
options: (C++: int) Form close flags

clr_cancelled() ‑> void

clr_cancelled() Clear "Cancelled" flag (ui_clr_cancelled)

create_code_viewer(custview: TWidget *, flags: int = 0, parent: TWidget * = None) ‑> TWidget *

create_code_viewer(custview, flags=0, parent=None) -> 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.

custview: (C++: TWidget *) the custom view to be added
flags: (C++: int) Code viewer flags
parent: (C++: TWidget *) widget to contain the new code viewer

create_empty_widget(title: char const *, icon: int = -1) ‑> TWidget *

create_empty_widget(title, icon=-1) -> TWidget Create an empty widget, serving as a container for custom user widgets

title: (C++: const char *) char const *
icon: (C++: int)

create_menu(name: char const *, label: char const *, menupath: char const * = None) ‑> bool

create_menu(name, label, menupath=None) -> bool Create a menu with the given name, label and optional position, either in the menubar, or as a submenu. If 'menupath' is non-nullptr, 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.

name: (C++: const char *) name of menu (must be unique)
label: (C++: const char *) label of menu
menupath: (C++: const char *) where should the menu be inserted
return: success

create_toolbar(name: char const *, label: char const *, before: char const * = None, flags: int = 0) ‑> bool

create_toolbar(name, label, before=None, flags=0) -> bool Create a toolbar with the given name, label and optional position

name: (C++: const char *) name of toolbar (must be unique)
label: (C++: const char *) label of toolbar
before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be
              inserted
flags: (C++: int) a combination of create toolbar flags, to determine toolbar
             position
return: success

custom_viewer_jump(v: TWidget *, loc: lochist_entry_t const &, flags: uint32 = 0) ‑> bool

custom_viewer_jump(v, loc, flags=0) -> bool Append 'loc' to the viewer's history, and cause the viewer to display it.

v: (C++: TWidget *) (TWidget *)
loc: (C++: const lochist_entry_t &) (const lochist_entry_t &)
flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values
return: success

del_hotkey(pyctx: PyObject *) ‑> bool

del_hotkey(pyctx) -> bool Deletes a previously registered function hotkey

ctx: Hotkey context previously returned by add_hotkey()

return: Boolean.

del_idc_hotkey(hotkey: char const *) ‑> bool

del_idc_hotkey(hotkey) -> bool

hotkey: char const *

delete_menu(name: char const *) ‑> bool

delete_menu(name) -> bool Delete an existing menu

name: (C++: const char *) name of menu
return: success

delete_toolbar(name: char const *) ‑> bool

delete_toolbar(name) -> bool Delete an existing toolbar

name: (C++: const char *) name of toolbar
return: success

detach_action_from_menu(menupath: char const *, name: char const *) ‑> bool

detach_action_from_menu(menupath, name) -> bool Detach an action from the menu (ui_detach_action_from_menu).

menupath: (C++: const char *) path to the menu item
name: (C++: const char *) the action name
return: success

detach_action_from_popup(widget: TWidget *, name: char const *) ‑> bool

detach_action_from_popup(widget, name) -> 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.

widget: (C++: TWidget *) target widget
name: (C++: const char *) action name

detach_action_from_toolbar(toolbar_name: char const *, name: char const *) ‑> bool

detach_action_from_toolbar(toolbar_name, name) -> bool Detach an action from the toolbar (ui_detach_action_from_toolbar).

toolbar_name: (C++: const char *) the name of the toolbar
name: (C++: const char *) the action name
return: success

display_copyright_warning() -> bool Display copyright warning (ui_copywarn).

return: yes/no

display_widget(widget: TWidget *, options: uint32, dest_ctrl: char const * = None) ‑> void

display_widget(widget, options, dest_ctrl=None) Display a widget, dock it if not done before

widget: (C++: TWidget *) widget to display
options: (C++: uint32) Widget open flags
dest_ctrl: (C++: const char *) where to dock: if nullptr or invalid then use the active
                 docker if there is not create a new tab relative to current
                 active tab

ea2str(ea: ea_t) ‑> qstring *

ea2str(ea) -> str Convert linear address to UTF-8 string.

ea: (C++: ea_t)

ea_viewer_history_push_and_jump(v: TWidget *, ea: ea_t, x: int, y: int, lnnum: int) ‑> bool

ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> 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.

v: (C++: TWidget *) ea viewer
ea: (C++: ea_t) jump destination
x: (C++: int) ,y: coords on screen
lnnum: (C++: int) desired line number of given address
lnnum: (C++: int) desired line number of given address

enable_chooser_item_attrs(chooser_caption: char const *, enable: bool) ‑> bool

enable_chooser_item_attrs(chooser_caption, enable) -> 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_attrs events 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.

chooser_caption: (C++: const char *) char const *
enable: (C++: bool)
return: success

error(*args) ‑> void

error(format) Display a fatal message in a message box and quit IDA

format: message to print

execute_sync(py_callable: PyObject *, reqf: int) ‑> ssize_t

execute_sync(py_callable, reqf) -> ssize_t 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.

py_callable: A python callable object, must return an integer value
reqf: one of MFF_ flags
return: -1 or the return value of the callable

execute_ui_requests(py_list: PyObject *) ‑> 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 callable item

find_widget(caption: char const *) ‑> TWidget *

find_widget(caption) -> TWidget * Find widget with the specified caption (only gui version) (ui_find_widget). NB: this callback works only with the tabbed widgets!

caption: (C++: const char *) title of tab, or window title if widget is not tabbed
return: pointer to the TWidget, nullptr if none is found

formchgcbfa_close(p_fa: size_t, close_normally: int) ‑> void

formchgcbfa_close(p_fa, close_normally)

p_fa: size_t
close_normally: int

formchgcbfa_enable_field(p_fa: size_t, fid: int, enable: bool) ‑> bool

formchgcbfa_enable_field(p_fa, fid, enable) -> bool

p_fa: size_t
fid: int
enable: bool

formchgcbfa_get_field_value(p_fa: size_t, fid: int, ft: int, sz: size_t) ‑> PyObject *

formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject *

p_fa: size_t
fid: int
ft: int
sz: size_t

formchgcbfa_get_focused_field(p_fa: size_t) ‑> int

formchgcbfa_get_focused_field(p_fa) -> int

p_fa: size_t

formchgcbfa_move_field(p_fa: size_t, fid: int, x: int, y: int, w: int, h: int) ‑> 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

formchgcbfa_refresh_field(p_fa: size_t, fid: int) ‑> void

formchgcbfa_refresh_field(p_fa, fid)

p_fa: size_t
fid: int

formchgcbfa_set_field_value(p_fa: size_t, fid: int, ft: int, py_val: PyObject *) ‑> bool

formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool

p_fa: size_t
fid: int
ft: int
py_val: PyObject *

formchgcbfa_set_focused_field(p_fa: size_t, fid: int) ‑> bool

formchgcbfa_set_focused_field(p_fa, fid) -> bool

p_fa: size_t
fid: int

formchgcbfa_show_field(p_fa: size_t, fid: int, show: bool) ‑> bool

formchgcbfa_show_field(p_fa, fid, show) -> bool

p_fa: size_t
fid: int
show: bool

free_custom_icon(icon_id: int) ‑> void

free_custom_icon(icon_id) Frees an icon loaded with load_custom_icon()

icon_id: int

gen_disasm_text(text: disasm_text_t, ea1: ea_t, ea2: ea_t, truncate_lines: bool) ‑> void

gen_disasm_text(text, ea1, ea2, truncate_lines) Generate disassembly text for a range.

text: (C++: text_t &) result
ea1: (C++: ea_t) start address
ea2: (C++: ea_t) end address
truncate_lines: (C++: bool) (on idainfo::margin)

get_action_checkable(name: char const *) ‑> bool *

get_action_checkable(name) -> bool Get an action's checkability (ui_get_action_attr).

name: (C++: const char *) the action name
return: success

get_action_checked(name: char const *) ‑> bool *

get_action_checked(name) -> bool Get an action's checked state (ui_get_action_attr).

name: (C++: const char *) the action name
return: success

get_action_icon(name: char const *) ‑> int *

get_action_icon(name) -> bool Get an action's icon (ui_get_action_attr).

name: (C++: const char *) the action name
return: success

get_action_label(name: char const *) ‑> qstring *

get_action_label(name) -> str Get an action's label (ui_get_action_attr).

name: (C++: const char *) the action name
return: success

get_action_shortcut(name: char const *) ‑> qstring *

get_action_shortcut(name) -> str Get an action's shortcut (ui_get_action_attr).

name: (C++: const char *) the action name
return: success

get_action_state(name: char const *) ‑> action_state_t *

get_action_state(name) -> bool Get an action's state (ui_get_action_attr).

name: (C++: const char *) the action name
return: success

get_action_tooltip(name: char const *) ‑> qstring *

get_action_tooltip(name) -> str Get an action's tooltip (ui_get_action_attr).

name: (C++: const char *) the action name
return: success

get_action_visibility(name: char const *) ‑> bool *

get_action_visibility(name) -> bool Get an action's visibility (ui_get_action_attr).

name: (C++: const char *) the action name
return: success

get_active_modal_widget() ‑> TWidget *

get_active_modal_widget() -> TWidget * Get the current, active modal TWidget instance. Note that in this context, the "wait dialog" is not considered: this function will return nullptr even if it is currently shown.

return: TWidget * the active modal widget, or nullptr

get_addon_info(id: char const *, info: addon_info_t) ‑> bool

get_addon_info(id, info) -> 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

id: (C++: const char *) char const *
info: (C++: addon_info_t *)
return: false if not found

get_addon_info_idx(index: int, info: addon_info_t) ‑> bool

get_addon_info_idx(index, info) -> 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

index: (C++: int)
info: (C++: addon_info_t *)
return: false if index is out of range

get_chooser_data(chooser_caption: char const *, n: int) ‑> PyObject *

get_chooser_data(chooser_caption, n) -> [str, ...] Get the text corresponding to the index N in the chooser data. Use -1 to get the header.

See also get_chooser_rows().

chooser_caption: (C++: const char *) char const *
n: (C++: int)

get_chooser_obj(chooser_caption: char const *) ‑> void *

get_chooser_obj(chooser_caption) -> 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.

note: This is object is chooser-specific.

chooser_caption: (C++: const char *) char const *
return: the object that was used to create the chooser

get_chooser_rows(out: chooser_row_info_vec_t, chooser_caption: char const *, what: size_t) ‑> bool

get_chooser_rows(out, chooser_caption, what) -> bool Get the chooser contents corresponding to the rows indicated by "what".

out: (C++: chooser_row_info_vec_t *) A vector of chooser_row_info_t, one entry per returned row.
chooser_caption: (C++: const char *) The caption that identifies the desired chooser.
what: (C++: size_t) Either one of the GCRF_ flags, or a row index.
return: Success.

get_curline() ‑> char const *

get_curline() -> char const * Get current line from the disassemble window (ui_get_curline).

return: cptr current line with the color codes (use tag_remove() to remove the
        color codes)

get_current_viewer() ‑> TWidget *

get_current_viewer() -> TWidget * Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer)

get_current_widget() ‑> TWidget *

get_current_widget() -> TWidget * Get a pointer to the current widget (ui_get_current_widget).

get_cursor() ‑> int *, int *

get_cursor() -> bool Get the cursor position on the screen (ui_get_cursor). note: coordinates are 0-based

retval true: pointers are filled
retval false: no disassembly window open

get_custom_viewer_curline(custom_viewer: TWidget *, mouse: bool) ‑> char const *

get_custom_viewer_curline(custom_viewer, mouse) -> char const * Get current line of custom viewer (ui_get_custom_viewer_curline). The returned line contains color codes

See also the more powerful get_custom_viewer_location()

custom_viewer: (C++: TWidget *) view
mouse: (C++: bool) mouse position (otherwise cursor position)
return: pointer to contents of current line

get_custom_viewer_location(*args) ‑> bool

get_custom_viewer_location(out, custom_viewer, mouse=False) -> bool Get the current location in a custom viewer (ui_get_custom_viewer_location_2).

out: (C++: listing_location_t *) output structure to fill
custom_viewer: (C++: TWidget *) the listing widget
flags: (C++: uint32) or'ed combination of CVLF_* values

get_custom_viewer_location(out, custom_viewer, flags=0) -> bool

out: listing_location_t *
custom_viewer: TWidget *
flags: uint32

get_custom_viewer_place(custom_viewer: TWidget *, mouse: bool) ‑> int *, int *

get_custom_viewer_place(custom_viewer, mouse) -> place_t Get current place in a custom viewer (ui_get_curplace).

See also the more complete get_custom_viewer_location()

custom_viewer: (C++: TWidget *) view
mouse: (C++: bool) mouse position (otherwise cursor position)

get_custom_viewer_place_xcoord(custom_viewer: TWidget *, pline: place_t, pitem: place_t) ‑> int

get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int Get the X position of the item, in the line

custom_viewer: (C++: TWidget *) the widget
pline: (C++: const place_t *) a place corresponding to the line
pitem: (C++: const place_t *) a place corresponding to the item
return: -1 if 'pitem' is not included in the line

-2 if 'pitem' points at the entire line

= 0 for the X coordinate within the pline, where pitem points

get_ea_viewer_history_info(nback: int *, nfwd: int *, v: TWidget *) ‑> bool

get_ea_viewer_history_info(nback, nfwd, v) -> bool Get information about what's in the history (ui_ea_viewer_history_info).

nback: (C++: int *) number of available back steps
nfwd: (C++: int *) number of available forward steps
v: (C++: TWidget *) ea viewer
retval false: if the given ea viewer does not exist
retval true: otherwise

get_hexdump_ea(hexdump_num: int) ‑> ea_t

get_hexdump_ea(hexdump_num) -> ea_t Get the current address in a hex view.

hexdump_num: (C++: int) number of hexview window

get_highlight(v: TWidget *, in_flags: uint32 = 0) ‑> PyObject *

get_highlight(v, in_flags=0) -> PyObject Returns the currently highlighted identifier and flags

v: The UI widget to operate on
flags: Optionally specify a slot (see kernwin.hpp), current otherwise
return: a tuple (text, flags), or None if nothing
        is highlighted or in case of error.

get_icon_id_by_name(icon_name: char const *) ‑> int

get_icon_id_by_name(icon_name) -> int Retrieve the id of the icon by name (ui_get_icon_id_by_name).

icon_name: (C++: const char *) full name of the icon
return: icon id

get_kernel_version() ‑> size_t

get_kernel_version() -> str Get IDA kernel version (in a string like "5.1").

get_key_code(keyname: char const *) ‑> ushort

get_key_code(keyname) -> ushort Get keyboard key code by its name (ui_get_key_code)

keyname: (C++: const char *) char const *

get_navband_ea(pixel: int) ‑> ea_t

get_navband_ea(pixel) -> ea_t Translate the pixel position on the navigation band, into an address.

pixel: (C++: int)

get_navband_pixel(ea: ea_t) ‑> bool *

get_navband_pixel(ea) -> int Maps an address, onto a pixel coordinate within the navigation band

ea: The address to map
return: a list [pixel, is_vertical]

get_opnum() ‑> int

get_opnum() -> int Get current operand number, -1 means no operand (ui_get_opnum)

get_output_curline(mouse: bool) ‑> qstring *

get_output_curline(mouse) -> str Get current line of output window (ui_get_output_curline).

mouse: (C++: bool) current for mouse pointer?
return: false if output contains no text

get_output_cursor() ‑> int *, int *

get_output_cursor() -> bool Get coordinates of the output window's cursor (ui_get_output_cursor). note: coordinates are 0-based note: this function will succeed even if the output window is not visible

retval false: the output window has been destroyed.
retval true: pointers are filled

get_output_selected_text() ‑> qstring *

get_output_selected_text() -> str Returns selected text from output window (ui_get_output_selected_text).

return: true if there is a selection

get_place_class(out_flags: int *, out_sdk_version: int *, id: int) ‑> place_t const *

get_place_class(out_flags, out_sdk_version, id) -> place_t Get information about a previously-registered place_t class. See also register_place_class().

out_flags: (C++: int *) output flags (can be nullptr)
out_sdk_version: (C++: int *) sdk version the place was created with (can be nullptr)
id: (C++: int) place class ID
return: the place_t template, or nullptr if not found

get_place_class_id(name: char const *) ‑> int

get_place_class_id(name) -> int Get the place class ID for the place that has been registered as 'name'.

name: (C++: const char *) the class name
return: the place class ID, or -1 if not found

get_place_class_template(id: int) ‑> place_t const *

get_place_class_template(id) -> place_t See get_place_class()

id: (C++: int)

get_registered_actions() ‑> PyObject *

get_registered_actions() -> [str, ...] Get a list of all currently-registered actions

get_screen_ea() ‑> ea_t

get_screen_ea() -> ea_t Get the address at the screen cursor (ui_screenea)

get_synced_group(w: TWidget const *) ‑> synced_group_t const *

get_synced_group(w) -> synced_group_t Get the group of widgets/registers this view is synchronized with

w: (C++: const TWidget *) the widget
return: the group of widgets/registers, or nullptr

get_tab_size(path: char const *) ‑> int

get_tab_size(path) -> int Get the size of a tab in spaces (ui_get_tab_size).

path: (C++: const char *) the path of the source view for which the tab size is requested.
  • if nullptr, the default size is returned.

get_user_input_event(out: input_event_t) ‑> bool

get_user_input_event(out) -> bool Get the current user input event (mouse button press, key press, ...) It is sometimes desirable to be able to tell when a certain situation happens (e.g., 'view_curpos' gets triggered); this function exists to provide that context (GUI version only)

out: (C++: input_event_t *) the input event data
return: false if we are not currently processing a user input event

get_user_strlist_options(out: strwinsetup_t *) ‑> void

get_user_strlist_options(out)

out: strwinsetup_t *

get_view_renderer_type(v: TWidget *) ‑> tcc_renderer_type_t

get_view_renderer_type(v) -> tcc_renderer_type_t Get the type of renderer currently in use in the given view (ui_get_renderer_type)

v: (C++: TWidget *)

get_viewer_place_type(viewer: TWidget *) ‑> tcc_place_type_t

get_viewer_place_type(viewer) -> tcc_place_type_t Get the type of place_t instances a viewer uses & creates (ui_get_viewer_place_type).

viewer: (C++: TWidget *)

get_viewer_user_data(viewer: TWidget *) ‑> void *

get_viewer_user_data(viewer) -> void * Get the user data from a custom viewer (ui_get_viewer_user_data)

viewer: (C++: TWidget *)

get_widget_title(widget: TWidget *) ‑> qstring *

get_widget_title(widget) -> str Get the TWidget's title (ui_get_widget_title).

widget: (C++: TWidget *)

get_widget_type(widget: TWidget *) ‑> twidget_type_t

get_widget_type(widget) -> twidget_type_t Get the type of the TWidget * (ui_get_widget_type).

widget: (C++: TWidget *)

get_window_id(name: char const * = None) ‑> void *

get_window_id(name=None) Get the system-specific window ID (GUI version only)

name: (C++: const char *) name of the window (nullptr means the main IDA window)
return: the low-level window ID

hide_wait_box() ‑> void

hide_wait_box() Hide the "Please wait dialog box".

info(*args) ‑> void

info(format)

format: char const *

install_command_interpreter(py_obj: PyObject *) ‑> int

install_command_interpreter(py_obj) -> int Install command line interpreter (ui_install_cli)

py_obj: PyObject *

internal_register_place_class(tmplate: place_t, flags: int, owner: plugin_t const *, sdk_version: int) ‑> int

internal_register_place_class(tmplate, flags, owner, sdk_version) -> int

tmplate: place_t const *
flags: int
owner: plugin_t const *
sdk_version: int

is_action_enabled(s: action_state_t) ‑> bool

is_action_enabled(s) -> bool Check if the given action state is one of AST_ENABLE*.

s: (C++: action_state_t) enum action_state_t

is_chooser_widget(t: twidget_type_t) ‑> bool

is_chooser_widget(t) -> bool Does the given widget type specify a chooser widget?

t: (C++: twidget_type_t)

is_ida_library(path: char *, pathsize: size_t, handle: void **) ‑> bool

is_ida_library(path, pathsize, handle) -> bool

path: char *
pathsize: size_t
handle: void **

is_idaq() ‑> bool

is_idaq() -> bool Returns True or False depending if IDAPython is hosted by IDAQ

is_idaview(v: TWidget *) ‑> bool

is_idaview(v) -> bool Is the given custom view an idaview? (ui_is_idaview)

v: (C++: TWidget *)

is_msg_inited() ‑> bool

is_msg_inited() -> bool Can we use msg() functions?

is_place_class_ea_capable(id: int) ‑> bool

is_place_class_ea_capable(id) -> bool See get_place_class()

id: (C++: int)

is_refresh_requested(mask: uint64) ‑> bool

is_refresh_requested(mask) -> bool Get a refresh request state

mask: (C++: uint64) Window refresh flags
return: the state (set or cleared)

is_tif_cursor_footer(c) -> bool

c: tif_cursor_t

is_tif_cursor_header(c: tif_cursor_t) ‑> bool

is_tif_cursor_header(c) -> bool

c: tif_cursor_t

is_tif_cursor_index(c: tif_cursor_t) ‑> bool

is_tif_cursor_index(c) -> bool

c: tif_cursor_t

jumpto(*args) ‑> bool

jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool Set cursor position in custom ida viewer.

custom_viewer: (C++: TWidget *) view
place: (C++: place_t *) target position
uijmp_flags: int

return: success

jumpto(custom_viewer, place, x, y) -> bool

custom_viewer: TWidget *
place: place_t *
x: int

l_compare2(t1: place_t, t2: place_t, ud: void *) ‑> int

l_compare2(t1, t2, ud) -> int

t1: place_t const *
t2: place_t const *
ud: void *

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.

Load an icon and return its id (ui_load_custom_icon).

return: icon id

load_dbg_dbginfo(*args) ‑> bool

load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool Load debugging information from a file.

path: (C++: const char *) path to file
li: (C++: linput_t *) loader input. if nullptr, check DBG_NAME_KEY
base: (C++: ea_t) loading address
verbose: (C++: bool) dump status to message window

lookup_key_code(key: int, shift: int, is_qt: bool) ‑> ushort

lookup_key_code(key, shift, is_qt) -> ushort Get shortcut code previously created by ui_get_key_code.

key: (C++: int) key constant
shift: (C++: int) modifiers
is_qt: (C++: bool) are we using gui version?

msg(o: PyObject *) ‑> PyObject *

msg(o) -> int 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

msg_clear() ‑> void

msg_clear() Clear the "Output" window.

msg_get_lines(count: int = -1) ‑> PyObject *

msg_get_lines(count=-1) -> PyObject Retrieve the last 'count' lines from the output window, in reverse order (from most recent, to least recent)

count: (C++: int) The number of lines to retrieve. -1 means: all

msg_save(path: qstring &) ‑> bool

msg_save(path) -> bool Save the "Output" window contents into a file

path: (C++: qstring &) 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.
return: success

nomem(*args) ‑> void

nomem(format)

format: char const *

open_bookmarks_window(w: TWidget *) ‑> TWidget *

open_bookmarks_window(w) -> TWidget * Open the bookmarks window (ui_open_builtin).

w: (C++: TWidget *) The widget for which the bookmarks will open. For example, this can be
         an IDAView, or Enums view, etc.
return: pointer to resulting window

open_bpts_window(ea: ea_t) ‑> TWidget *

open_bpts_window(ea) -> TWidget * Open the breakpoints window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
return: pointer to resulting window

open_calls_window(ea: ea_t) ‑> TWidget *

open_calls_window(ea) -> TWidget * Open the function calls window (ui_open_builtin).

ea: (C++: ea_t)
return: pointer to resulting window

open_disasm_window(window_title: char const *, ranges: rangevec_t = None) ‑> TWidget *

open_disasm_window(window_title, ranges=None) -> TWidget Open a disassembly view (ui_open_builtin).

window_title: (C++: const char *) title of view to open
ranges: (C++: const rangevec_t *) if != nullptr, then display a flow chart with the specified
              ranges
return: pointer to resulting window

open_exports_window(ea: ea_t) ‑> TWidget *

open_exports_window(ea) -> TWidget * Open the exports window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
return: pointer to resulting window

open_form(*args)

Display a dockable modeless dialog box and return a handle to it. The modeless form can be closed in the following ways:

  • by pressing the small 'x' in the window title

  • by calling form_actions_t::close() from the form callback (form_actions_t) note: pressing the 'Yes/No/Cancel' buttons does not close the modeless form, except if the form callback explicitly calls close().

return: handle to the form or nullptr. the handle can be used with TWidget

open_frame_window(pfn: func_t *, offset: uval_t) ‑> TWidget *

open_frame_window(pfn, offset) -> TWidget * Open the frame window for the given function (ui_open_builtin).

pfn: (C++: func_t *) function to analyze
offset: (C++: uval_t) offset where the cursor is placed
return: pointer to resulting window if 'pfn' is a valid function and the window
        was displayed,

nullptr otherwise

open_funcs_window(ea: ea_t) ‑> TWidget *

open_funcs_window(ea) -> TWidget * Open the 'Functions' window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
return: pointer to resulting window

open_hexdump_window(window_title: char const *) ‑> TWidget *

open_hexdump_window(window_title) -> TWidget * Open a hexdump view (ui_open_builtin).

window_title: (C++: const char *) title of view to open
return: pointer to resulting window

open_imports_window(ea: ea_t) ‑> TWidget *

open_imports_window(ea) -> TWidget * Open the exports window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
return: pointer to resulting window

open_loctypes_window(ordinal: int, cursor: tif_cursor_t const * = None) ‑> TWidget *

open_loctypes_window(ordinal, cursor=None) -> TWidget Open the local types window (ui_open_builtin).

ordinal: (C++: int) ordinal of type to select by default
cursor: (C++: const tif_cursor_t *) cursor to the type member
return: pointer to resulting window

open_modules_window() ‑> TWidget *

open_modules_window() -> TWidget * Open the modules window (ui_open_builtin).

return: pointer to resulting window

open_names_window(ea: ea_t) ‑> TWidget *

open_names_window(ea) -> TWidget * Open the names window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
return: pointer to resulting window

open_navband_window(ea: ea_t, zoom: int) ‑> TWidget *

open_navband_window(ea, zoom) -> TWidget * Open the navigation band window (ui_open_builtin).

ea: (C++: ea_t) sets the address of the navband arrow
zoom: (C++: int) sets the navband zoom level
return: pointer to resulting window

open_notepad_window() ‑> TWidget *

open_notepad_window() -> TWidget * Open the notepad window (ui_open_builtin).

return: pointer to resulting window

open_problems_window(ea: ea_t) ‑> TWidget *

open_problems_window(ea) -> TWidget * Open the problems window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
return: pointer to resulting window

open_segments_window(ea: ea_t) ‑> TWidget *

open_segments_window(ea) -> TWidget * Open the segments window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
return: pointer to resulting window

open_segregs_window(ea: ea_t) ‑> TWidget *

open_segregs_window(ea) -> TWidget * Open the segment registers window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
return: pointer to resulting window

open_selectors_window() ‑> TWidget *

open_selectors_window() -> TWidget * Open the selectors window (ui_open_builtin).

return: pointer to resulting window

open_signatures_window() ‑> TWidget *

open_signatures_window() -> TWidget * Open the signatures window (ui_open_builtin).

return: pointer to resulting window

open_stack_window() ‑> TWidget *

open_stack_window() -> TWidget * Open the call stack window (ui_open_builtin).

return: pointer to resulting window

open_strings_window(*args) ‑> TWidget *

open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget Open the 'Strings' window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
selstart: (C++: ea_t) ,selend: only display strings that occur within this range
selend: (C++: ea_t)
return: pointer to resulting window

open_threads_window() ‑> TWidget *

open_threads_window() -> TWidget * Open the threads window (ui_open_builtin).

return: pointer to resulting window

open_tils_window() ‑> TWidget *

open_tils_window() -> TWidget * Open the type libraries window (ui_open_builtin).

return: pointer to resulting window

open_trace_window() ‑> TWidget *

open_trace_window() -> TWidget * Open the tracing window (ui_open_builtin).

return: pointer to resulting window

open_url(url: char const *) ‑> void

open_url(url) Open the given url (ui_open_url)

url: (C++: const char *) char const *

open_xrefs_window(ea: ea_t) ‑> TWidget *

open_xrefs_window(ea) -> TWidget * Open the cross references window (ui_open_builtin).

ea: (C++: ea_t) index of entry to select by default
return: pointer to resulting window

place_t_as_idaplace_t(p: place_t) ‑> idaplace_t *

as_idaplace_t(p) -> idaplace_t

p: place_t *

place_t_as_simpleline_place_t(p: place_t) ‑> simpleline_place_t *

as_simpleline_place_t(p) -> simpleline_place_t

p: place_t *

place_t_as_tiplace_t(p: place_t) ‑> tiplace_t *

as_tiplace_t(p) -> tiplace_t

p: place_t *

plgform_close(py_link, options)

py_link: PyObject *
options: int

plgform_get_widget(py_link) -> TWidget *

py_link: PyObject *

plgform_new() ‑> PyObject *

plgform_new() -> PyObject *

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

process_ui_action(name: char const *, flags: int = 0) ‑> bool

process_ui_action(name, flags=0) -> bool Invokes an IDA UI action by name

name: action name
flags: int
return: Boolean

py_chooser_base_t_get_row(chobj: chooser_base_t, n: size_t) ‑> PyObject *

py_chooser_base_t_get_row(chobj, n) -> PyObject *

chobj: chooser_base_t const *
n: size_t

py_get_ask_form() ‑> size_t

py_get_ask_form() -> size_t

py_get_open_form() ‑> size_t

py_get_open_form() -> size_t

py_load_custom_icon_data(data: PyObject *, format: char const *) ‑> int

py_load_custom_icon_data(data, format) -> int

data: PyObject *
format: char const *

py_load_custom_icon_fn(filename: char const *) ‑> int

py_load_custom_icon_fn(filename) -> int

filename: char const *

py_register_compiled_form(py_form: PyObject *) ‑> void

py_register_compiled_form(py_form)

py_form: PyObject *

py_unregister_compiled_form(py_form: PyObject *) ‑> void

py_unregister_compiled_form(py_form)

py_form: PyObject *

pyidag_bind(_self: PyObject *) ‑> bool

pyidag_bind(_self) -> bool

self: PyObject *

pyidag_unbind(_self: PyObject *) ‑> bool

pyidag_unbind(_self) -> bool

self: PyObject *

pyscv_add_line(py_this: PyObject *, py_sl: PyObject *) ‑> bool

pyscv_add_line(py_this, py_sl) -> bool

py_this: PyObject *
py_sl: PyObject *

pyscv_clear_lines(py_this: PyObject *) ‑> PyObject *

pyscv_clear_lines(py_this) -> PyObject *

py_this: PyObject *

pyscv_close(py_this: PyObject *) ‑> void

pyscv_close(py_this)

py_this: PyObject *

pyscv_count(py_this: PyObject *) ‑> size_t

pyscv_count(py_this) -> size_t

py_this: PyObject *

pyscv_del_line(py_this: PyObject *, nline: size_t) ‑> bool

pyscv_del_line(py_this, nline) -> bool

py_this: PyObject *
nline: size_t

pyscv_edit_line(py_this: PyObject *, nline: size_t, py_sl: PyObject *) ‑> bool

pyscv_edit_line(py_this, nline, py_sl) -> bool

py_this: PyObject *
nline: size_t
py_sl: PyObject *

pyscv_get_current_line(py_this: PyObject *, mouse: bool, notags: bool) ‑> PyObject *

pyscv_get_current_line(py_this, mouse, notags) -> PyObject *

py_this: PyObject *
mouse: bool
notags: bool

pyscv_get_current_word(py_this: PyObject *, mouse: bool) ‑> PyObject *

pyscv_get_current_word(py_this, mouse) -> PyObject *

py_this: PyObject *
mouse: bool

pyscv_get_line(py_this: PyObject *, nline: size_t) ‑> PyObject *

pyscv_get_line(py_this, nline) -> PyObject *

py_this: PyObject *
nline: size_t

pyscv_get_pos(py_this: PyObject *, mouse: bool) ‑> PyObject *

pyscv_get_pos(py_this, mouse) -> PyObject *

py_this: PyObject *
mouse: bool

pyscv_get_selection(py_this: PyObject *) ‑> PyObject *

pyscv_get_selection(py_this) -> PyObject *

py_this: PyObject *

pyscv_get_widget(py_this: PyObject *) ‑> TWidget *

pyscv_get_widget(py_this) -> TWidget *

py_this: PyObject *

pyscv_init(py_link, title) -> PyObject *

py_link: PyObject *
title: char const *

pyscv_insert_line(py_this: PyObject *, nline: size_t, py_sl: PyObject *) ‑> bool

pyscv_insert_line(py_this, nline, py_sl) -> bool

py_this: PyObject *
nline: size_t
py_sl: PyObject *

pyscv_is_focused(py_this: PyObject *) ‑> bool

pyscv_is_focused(py_this) -> bool

py_this: PyObject *

pyscv_jumpto(py_this: PyObject *, ln: size_t, x: int, y: int) ‑> bool

pyscv_jumpto(py_this, ln, x, y) -> bool

py_this: PyObject *
ln: size_t
x: int
y: int

pyscv_patch_line(py_this: PyObject *, nline: size_t, offs: size_t, value: int) ‑> bool

pyscv_patch_line(py_this, nline, offs, value) -> bool

py_this: PyObject *
nline: size_t
offs: size_t
value: int

pyscv_refresh(py_this: PyObject *) ‑> bool

pyscv_refresh(py_this) -> bool

py_this: PyObject *

pyscv_show(py_this: PyObject *) ‑> bool

pyscv_show(py_this) -> bool

py_this: PyObject *

qcleanline(*args) ‑> qstring *

qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> ssize_t Performs some cleanup operations to a line.

cmt_char: (C++: 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 flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM return: length of line

read_range_selection(v: TWidget *) ‑> ea_t *, ea_t *

read_range_selection(v) -> bool Get the address range for the selected range boundaries, this is the convenient function for read_selection()

v: (C++: TWidget *) view, nullptr means the last active window containing addresses
retval 0: no range is selected
retval 1: ok, start ea and end ea are filled

read_selection(v: TWidget *, p1: twinpos_t, p2: twinpos_t) ‑> 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.
p1: Storage for the "to" part of the selection.
p1: Storage for the "to" part of the selection.
return: a bool value indicating success.

refresh_chooser(title: char const *) ‑> bool

refresh_chooser(title) -> bool Mark a non-modal custom chooser for a refresh (ui_refresh_chooser).

title: (C++: const char *) title of chooser
return: success

refresh_choosers() ‑> void

refresh_choosers()

refresh_custom_viewer(custom_viewer: TWidget *) ‑> void

refresh_custom_viewer(custom_viewer) Refresh custom ida viewer (ui_refresh_custom_viewer)

custom_viewer: (C++: TWidget *)

refresh_idaview() ‑> void

refresh_idaview() Refresh marked windows (ui_refreshmarked)

refresh_idaview_anyway() ‑> void

refresh_idaview_anyway() Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please consider request_refresh() instead

refresh_navband(force: bool) ‑> void

refresh_navband(force) Refresh navigation band if changed (ui_refresh_navband).

force: (C++: bool) refresh regardless

register_action(desc: action_desc_t) ‑> bool

register_action(desc) -> 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.

desc: (C++: const action_desc_t &) action to register
return: success

register_addon(info: addon_info_t) ‑> int

register_addon(info) -> 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

info: (C++: const addon_info_t *) addon_info_t const *

register_and_attach_to_menu(menupath: char const *, name: char const *, label: char const *, shortcut: char const *, flags: int, handler: action_handler_t *, owner: void *, action_desc_t_flags: int) ‑> bool

register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> 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.

menupath: (C++: const char *) char const *
name: (C++: const char *) char const *
label: (C++: const char *) char const *
shortcut: (C++: const char *) char const *
flags: (C++: int)
handler: (C++: action_handler_t *)
owner: (C++: void *)
action_desc_t_flags: (C++: int)

register_timer(interval: int, py_callback: PyObject *) ‑> PyObject *

register_timer(interval, py_callback) -> PyCapsule Register a timer

interval: Interval in milliseconds
py_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

remove_command_interpreter(cli_idx: int) ‑> void

remove_command_interpreter(cli_idx) Remove command line interpreter (ui_install_cli)

cli_idx: int

repaint_custom_viewer(custom_viewer: TWidget *) ‑> void

repaint_custom_viewer(custom_viewer) Repaint the given widget immediately (ui_repaint_qwidget)

custom_viewer: (C++: TWidget *)

replace_wait_box(*args) ‑> void

replace_wait_box(format) Replace the label of "Please wait dialog box".

format: (C++: const char *) char const *

request_refresh(mask: uint64, cnd: bool = True) ‑> void

request_refresh(mask, cnd=True) Request a refresh of a builtin window.

mask: (C++: uint64) Window refresh flags
cnd: (C++: bool) set if true or clear flag otherwise

restore_database_snapshot(ss: snapshot_t const *, pyfunc_or_none: PyObject *, pytuple_or_none: PyObject *) ‑> PyObject *

restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> bool Restore a database snapshot. Note: This call is asynchronous. When it is completed, the callback will be triggered.

ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree())
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.

set_cancelled() ‑> void

set_cancelled() Set "Cancelled" flag (ui_set_cancelled)

set_code_viewer_handler(code_viewer: TWidget *, handler_id: custom_viewer_handler_id_t, handler_or_data: void *) ‑> void *

set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * Set a handler for a code viewer event (ui_set_custom_viewer_handler).

code_viewer: (C++: TWidget *) the code viewer
handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t
handler_or_data: (C++: void *) can be a handler or data. see examples in Functions:
                       custom viewer handlers
return: old value of the handler or data

set_code_viewer_is_source(code_viewer: TWidget *) ‑> bool

set_code_viewer_is_source(code_viewer) -> bool Specify that the given code viewer is used to display source code (ui_set_custom_viewer_handler).

code_viewer: (C++: TWidget *)

set_code_viewer_line_handlers(code_viewer: TWidget *, click_handler: code_viewer_lines_click_t *, popup_handler: code_viewer_lines_click_t *, dblclick_handler: code_viewer_lines_click_t *, drawicon_handler: code_viewer_lines_icon_t *, linenum_handler: code_viewer_lines_linenum_t *) ‑> void

set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) Set handlers for code viewer line events. Any of these handlers may be nullptr

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 *)

set_code_viewer_lines_alignment(code_viewer: TWidget *, align: int) ‑> bool

set_code_viewer_lines_alignment(code_viewer, align) -> bool Set alignment for lines in a code viewer (ui_set_custom_viewer_handler).

code_viewer: (C++: TWidget *)
align: (C++: int)

set_code_viewer_lines_icon_margin(code_viewer: TWidget *, margin: int) ‑> bool

set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool Set space allowed for icons in the margin of a code viewer (ui_set_custom_viewer_handler).

code_viewer: (C++: TWidget *)
margin: (C++: int)

set_code_viewer_lines_radix(code_viewer: TWidget *, radix: int) ‑> bool

set_code_viewer_lines_radix(code_viewer, radix) -> bool Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler).

code_viewer: (C++: TWidget *)
radix: (C++: int)

set_code_viewer_user_data(code_viewer: TWidget *, ud: void *) ‑> bool

set_code_viewer_user_data(code_viewer, ud) -> bool Set the user data on a code viewer (ui_set_custom_viewer_handler).

code_viewer: (C++: TWidget *)
ud: (C++: void *)

set_custom_viewer_qt_aware(custom_viewer: TWidget *) ‑> bool

set_custom_viewer_qt_aware(custom_viewer) -> bool Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler)

custom_viewer: (C++: TWidget *)

set_dock_pos(src_ctrl: char const *, dest_ctrl: char const *, orient: int, left: int = 0, top: int = 0, right: int = 0, bottom: int = 0) ‑> 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.

Use the left, top, right, bottom parameters if DP_FLOATING is used, or if you want to specify the width of docked windows.

src_ctrl: char const *
dest_ctrl: char const *
orient: One of DP_XXXX constants
left: int
top: int
right: int
bottom: int
return: Boolean

Example: set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window

set_highlight(viewer: TWidget *, str: char const *, flags: int) ‑> bool

set_highlight(viewer, str, flags) -> bool Set the highlighted identifier in the viewer (ui_set_highlight).

viewer: (C++: TWidget *) the viewer
str: (C++: const char *) the text to match, or nullptr to remove current
flags: (C++: int) combination of HIF_... bits (see set_highlight flags)
return: false if an error occurred

set_nav_colorizer(new_py_colorizer: PyObject *) ‑> PyObject *

set_nav_colorizer(new_py_colorizer) -> dict or None 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)

new_py_colorizer: PyObject *

set_view_renderer_type(v: TWidget *, rt: tcc_renderer_type_t) ‑> void

set_view_renderer_type(v, rt) Set the type of renderer to use in a view (ui_set_renderer_type)

v: (C++: TWidget *)
rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t

show_wait_box(message: char const *) ‑> void

show_wait_box(message) Display a dialog box with "Please wait...". The behavior of the dialog box can be configured with well-known tokens, that should be placed at the start of the format string: "NODELAY\n": the dialog will show immediately, instead of appearing after usual grace threshold "HIDECANCEL\n": the cancel button won't be added to the dialog box and user_cancelled() will always return false (but can be called to refresh UI) Using "HIDECANCEL" implies "NODELAY" Plugins must call hide_wait_box() to close the dialog box, otherwise the user interface will remain disabled. Note that, if the wait dialog is already visible, show_wait_box() will

  1. push the currently-displayed text on a stack

  2. display the new text Then, when hide_wait_box() is called, if that stack isn't empty its top label will be popped and restored in the wait dialog. This implies that a plugin should call hide_wait_box() exactly as many times as it called show_wait_box(), or the wait dialog might remain visible 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 the dialog without pushing the currently-displayed text on the stack.

message: char const *

str2ea(*args) ‑> uint64 *

str2ea(str, screen_ea=BADADDR) -> bool Convert string to linear address. Tries to interpret the string as:

  1. "current IP" keyword if supported by assembler (e.g. "$" in x86)

  2. segment:offset expression, where "segment" may be a name or a fixed segment register (e.g. cs, ds)

  3. just segment name/register (translated to segment's start address)

  4. a name in the database (or debug name during debugging)

  5. hexadecimal value without prefix or suffix

  6. +delta or -delta, where numerical 'delta' is added to or subtracted from 'screen_ea'

  7. register name (only during debugging)

  8. if all else fails, try to evaluate 'str' as an IDC expression

str: (C++: const char *) string to parse
screen_ea: (C++: ea_t) the current address in the disassembly/pseudocode view
return: success

str2ea_ex(*args) ‑> uint64 *

str2ea_ex(str, screen_ea=BADADDR, flags=0) -> bool Same as str2ea() but possibly with some steps skipped.

str: (C++: const char *) string to parse
screen_ea: (C++: ea_t) the current address in the disassembly/pseudocode view
flags: (C++: int) see String to address conversion flags
return: success

strarray(array: strarray_t, array_size: size_t, code: int) ‑> char const *

strarray(array, array_size, code) -> 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 "".

array: (C++: const strarray_t *) strarray_t const *
array_size: (C++: size_t)
code: (C++: int)

sync_sources(what: sync_source_t, _with: sync_source_t, sync: bool) ‑> bool

sync_sources(what, _with, sync) -> bool [Un]synchronize sources

what: (C++: const sync_source_t &)
with: (C++: const sync_source_t &)
sync: (C++: bool)
return: success

take_database_snapshot(ss: snapshot_t *) ‑> PyObject *

take_database_snapshot(ss) -> (bool, NoneType) Take a database snapshot (ui_take_database_snapshot).

ss: (C++: snapshot_t *) in/out parameter.
  • in: description, flags

  • out: filename, id return: success

textctrl_info_t_assign(_self: PyObject *, other: PyObject *) ‑> bool

textctrl_info_t_assign(_self, other) -> bool

self: PyObject *
other: PyObject *

textctrl_info_t_create() ‑> PyObject *

textctrl_info_t_create() -> PyObject *

textctrl_info_t_destroy(py_obj: PyObject *) ‑> 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 *

textctrl_info_t_get_flags(_self: PyObject *) ‑> unsigned int

textctrl_info_t_get_flags(_self) -> unsigned int

self: PyObject *

textctrl_info_t_get_tabsize(_self: PyObject *) ‑> unsigned int

textctrl_info_t_get_tabsize(_self) -> unsigned int

self: PyObject *

textctrl_info_t_get_text(_self: PyObject *) ‑> char const *

textctrl_info_t_get_text(_self) -> char const *

self: PyObject *

textctrl_info_t_set_flags(_self: PyObject *, flags: unsigned int) ‑> bool

textctrl_info_t_set_flags(_self, flags) -> bool

self: PyObject *
flags: unsigned int

textctrl_info_t_set_tabsize(_self: PyObject *, tabsize: unsigned int) ‑> bool

textctrl_info_t_set_tabsize(_self, tabsize) -> bool

self: PyObject *
tabsize: unsigned int

textctrl_info_t_set_text(_self: PyObject *, s: char const *) ‑> bool

textctrl_info_t_set_text(_self, s) -> bool

self: PyObject *
s: char const *

ui_load_new_file(temp_file: qstring *, filename: qstring *, pli: linput_t **, neflags: ushort, ploaders: load_info_t **) ‑> bool

ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool Display a load file dialog and load file (ui_load_file).

temp_file: (C++: qstring *) name of the file with the extracted archive member.
filename: (C++: qstring *) the name of input file as is, library or archive name
pli: (C++: linput_t **) loader input source, may be changed to point to temp_file
neflags: (C++: ushort) combination of NEF_... bits (see Load file flags)
ploaders: (C++: load_info_t **) list of loaders which accept file, may be changed for loaders
                of temp_file
retval true: file was successfully loaded
retval false: otherwise

ui_run_debugger(dbgopts: char const *, exename: char const *, argc: int, argv: char const *const *) ‑> bool

ui_run_debugger(dbgopts, exename, argc, argv) -> bool Load a debugger plugin and run the specified program (ui_run_dbg).

dbgopts: (C++: const char *) value of the -r command line switch
exename: (C++: const char *) name of the file to run
argc: (C++: int) number of arguments for the executable
argv: (C++: const char *const *) argument vector
return: success

unmark_selection() ‑> void

unmark_selection() Unmark selection (ui_unmarksel)

unregister_action(name: char const *) ‑> bool

unregister_action(name) -> bool Delete a previously-registered action (ui_unregister_action).

name: (C++: const char *) name of action
return: success

unregister_timer(py_timerctx: PyObject *) ‑> 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.

update_action_checkable(name: char const *, checkable: bool) ‑> bool

update_action_checkable(name, checkable) -> bool Update an action's checkability (ui_update_action_attr).

name: (C++: const char *) action name
checkable: (C++: bool) new checkability
return: success

update_action_checked(name: char const *, checked: bool) ‑> bool

update_action_checked(name, checked) -> bool Update an action's checked state (ui_update_action_attr).

name: (C++: const char *) action name
checked: (C++: bool) new checked state
return: success

update_action_icon(name: char const *, icon: int) ‑> bool

update_action_icon(name, icon) -> bool Update an action's icon (ui_update_action_attr).

name: (C++: const char *) action name
icon: (C++: int) new icon id
return: success

update_action_label(name: char const *, label: char const *) ‑> bool

update_action_label(name, label) -> bool Update an action's label (ui_update_action_attr).

name: (C++: const char *) action name
label: (C++: const char *) new label
return: success

update_action_shortcut(name: char const *, shortcut: char const *) ‑> bool

update_action_shortcut(name, shortcut) -> bool Update an action's shortcut (ui_update_action_attr).

name: (C++: const char *) action name
shortcut: (C++: const char *) new shortcut
return: success

update_action_state(name: char const *, state: action_state_t) ‑> bool

update_action_state(name, state) -> bool Update an action's state (ui_update_action_attr).

name: (C++: const char *) action name
state: (C++: action_state_t) new state
return: success

update_action_tooltip(name: char const *, tooltip: char const *) ‑> bool

update_action_tooltip(name, tooltip) -> bool Update an action's tooltip (ui_update_action_attr).

name: (C++: const char *) action name
tooltip: (C++: const char *) new tooltip
return: success

update_action_visibility(name: char const *, visible: bool) ‑> bool

update_action_visibility(name, visible) -> bool Update an action's visibility (ui_update_action_attr).

name: (C++: const char *) action name
visible: (C++: bool) new visibility
return: success

user_cancelled() ‑> bool

user_cancelled() -> bool Test the ctrl-break flag (ui_test_cancelled). retval 1: Ctrl-Break is detected, a message is displayed retval 2: Ctrl-Break is detected again, a message is not displayed retval 0: Ctrl-Break is not detected

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

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, flags2=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
 flags2: One of CH2_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

  • ALL_CHANGED


  • ALREADY_EXISTS


  • CHCOL_DEC


  • CHCOL_DEFHIDDEN


  • CHCOL_DRAGHINT


  • CHCOL_EA


  • CHCOL_FNAME


  • CHCOL_FORMAT


  • CHCOL_HEX


  • CHCOL_INODENAME


  • CHCOL_PATH


  • CHCOL_PLAIN


  • CH_ATTRS


  • CH_BUILTIN_MASK


  • CH_BUILTIN_SHIFT


  • CH_CAN_DEL


  • CH_CAN_EDIT


  • CH_CAN_INS


  • CH_CAN_REFRESH


  • CH_FORCE_DEFAULT


  • CH_HAS_DIFF


  • CH_HAS_DIRTREE


  • CH_MODAL


  • CH_MULTI


  • CH_NOBTNS


  • CH_NOIDB


  • CH_NO_STATUS_BAR


  • CH_QFLT


  • CH_QFTYP_DEFAULT


  • CH_QFTYP_FUZZY


  • CH_QFTYP_MASK


  • CH_QFTYP_NORMAL


  • CH_QFTYP_REGEX


  • CH_QFTYP_SHIFT


  • CH_QFTYP_WHOLE_WORDS


  • CH_RENAME_IS_EDIT


  • CH_RESTORE


  • EMPTY_CHOOSER


  • NOTHING_CHANGED


  • NO_ATTR


  • NO_SELECTION


  • SELECTION_CHANGED


  • UI_Hooks_Trampoline Proxy of C++ UI_Hooks class.


Methods

  • Activate(self) Activates a visible chooser


  • AddCommand(self, caption, flags=4, menu_index=-1, icon=-1, emb=None, shortcut=None)


  • Close(self) Closes the chooser


  • Embedded(self, create_chobj=False) Creates an embedded chooser (as opposed to Show()) return: Returns 0 on success or NO_ATTR


  • GetEmbSelection(self) Deprecated. For embedded choosers, the selection is available through 'Form.EmbeddedChooserControl.selection'


  • GetWidget(self) Return the TWidget underlying this view.

    return: The TWidget underlying this view, or None.


  • OnClose(self) The chooser window is closed.


  • OnDeleteLine(self, sel) User deleted an element

    sel: the current selection return: a tuple (changed, selection)


  • OnEditLine(self, sel) User asked to edit an element.

    sel: the current selection return: a tuple (changed, selection)


  • OnGetDirTree(self) Get the dirtree_t that will be used to present a tree-like structure to the user (see CH_HAS_DIRTREE)

    return: the dirtree_t, or None


  • OnGetEA(self, n) Get the address of an element

    When this function returns valid addresses:

    • If any column has the CHCOL_FNAME flag, rows will be colored according to the attributes of the functions who own those addresses (extern, library function, Lumina, ... - similar to what the "Functions" widget does)

    • When a selection is present and the user presses <Enter> (<Shift+Enter> if the chooser is modal), IDA will jump to that address (through jumpto()) n: element number (0-based) return: the effective address, ida_idaapi.BADADDR if the element has no address


  • OnGetIcon(self, n) Get an icon to associate with the first cell of an element

    n: index of the element return: an icon ID


  • OnGetLine(self, n) Get data for an element

    This callback is mandatory

    n: the index to fetch data for return: a list of strings


  • OnGetLineAttr(self, n) Get attributes for an element

    n: index of the element return: a tuple (color, flags)


  • OnGetSize(self) Get the number of elements in the chooser.

    This callback is mandatory

    return: the number of elements


  • OnIndexToDiffpos(self, n) Map an element index to a diffpos_t

    This callback is mandatory if CH_HAS_DIFF is specified

    n: index of the element return: the diffpos


  • OnIndexToInode(self, n) Map an element index to a dirtree_t inode

    This callback is mandatory if CH_HAS_DIRTREE is specified

    n: index of the element return: the inode number


  • OnInit(self) Initialize the chooser and populate it.

    This callback is optional


  • OnInsertLine(self, sel) User asked to insert an element

    sel: the current selection return: a tuple (changed, selection)


  • OnLazyLoadDir(self, path) Callback for lazy-loaded, dirtree-based choosers; the function will be called when a folder is expanded and it has not been loaded before. The implementation should use the given dirtree's link() or mkdir() methods to add the folder contents.

    path: an absolute dirtree path to the directory that is being expanded return: success


  • OnPopup(self, widget, popup_handle)


  • OnRefresh(self, sel) The chooser needs to be refreshed. It returns the new positions of the selected items.

    sel: the current selection return: a tuple (changed, selection)


  • OnSelectLine(self, sel) User pressed the enter key, or double-clicked a selection

    sel: the current selection return: a tuple (changed, selection)


  • OnSelectionChange(self, sel) Selection changed

    sel: the new selection


  • Refresh(self) Causes the refresh callback to trigger


  • 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;


  • 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) line: number of the remaining select item return: list of selected lines numbers (one element or empty)


CustomIDAMemo()

: Proxy of C++ View_Hooks class.

__init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks

 _flags: uint32
 _hkcb_flags: uint32

Ancestors (in MRO)

* ida_kernwin.View_Hooks

Descendants

* ida_graph.GraphViewer
* ida_kernwin.IDAViewWrapper

Methods

  • 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" : [, , , ...] # The list of nodes to group "text" : # The synthetic text for that group }

    groups_infos: A list of objects that describe those groups. return: A [, , ...] list of group nodes, or None (failure).


  • DelNodesInfos(self, *nodes) Delete the properties for the given node(s).

    nodes: A list of node IDs


  • 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.


  • GetCurrentRendererType(self)


  • GetNodeInfo(self, *args) Get the properties for the given node.

    ni: A node_info_t instance node: The index of the node. return: success


  • GetWidget(self) Return the TWidget underlying this view.

    return: The TWidget underlying this view, or None.


  • GetWidgetAsGraphViewer(self) Return the graph_viewer_t underlying this view.

    return: The graph_viewer_t underlying this view, or None.


  • Refresh(self) Refreshes the view. This causes the OnRefresh() to be called


  • SetCurrentRendererType(self, rtype) Set the current view's renderer.

    rtype: The renderer type. Should be one of the idaapi.TCCRT_* values.


  • 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.


  • 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.


  • 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.


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

  • 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)


  • ChkGroupControl Checkbox group control class. It holds a set of checkbox controls


  • ChkGroupItemControl Checkbox group item control


  • ColorInput Color button input control


  • Control


  • DirInput Directory browsing control


  • DropdownListControl Dropdown control This control allows manipulating a dropdown control


  • EmbeddedChooserControl Embedded chooser control. This control links to a Chooser2 control created with the 'embedded=True'


  • FT_ADDR


  • FT_ASCII


  • FT_BIN


  • FT_BUTTON


  • FT_CHAR


  • FT_CHKGRP


  • FT_CHKGRP2


  • FT_COLOR


  • FT_DEC


  • FT_DIR


  • FT_DROPDOWN_LIST


  • FT_ECHOOSER


  • FT_FILE


  • FT_FORMCHG


  • FT_HEX


  • FT_HTML_LABEL


  • FT_IDENT


  • FT_INT64


  • FT_MULTI_LINE_TEXT


  • FT_OCT


  • FT_RADGRP


  • FT_RADGRP2


  • FT_RAWHEX


  • FT_SEG


  • FT_SHEX


  • FT_TYPE


  • FT_UINT64


  • FileInput File Open/Save input control


  • 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)`


  • GroupControl Base class for group controls


  • GroupItemControl Base class for group control items


  • InputControl Generic form input control. It could be numeric control, string control, directory/file browsing, etc...


  • LabelControl Base class for static label control


  • 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


  • NumericArgument Argument representing various integer arguments (ushort, uint32, uint64, etc...) tp: One of Form.FT_XXX


  • NumericInput A composite class serving as a base numeric input control class


  • NumericLabel Numeric label control


  • RadGroupControl Radiobox group control class. It holds a set of radiobox controls


  • RadGroupItemControl Radiobox group item control


  • StringArgument Argument representing a character buffer


  • StringInput Base string input control class. This class also constructs a StringArgument


  • StringLabel String label control


Static methods

  • ControlToFieldTypeIdAndSize(ctrl) Converts a control object to a tuple containing the field id and the associated buffer size


  • create_string_buffer(value, size=None)


  • fieldtype_to_ctype(tp, i64=False) Factory method returning a ctype class corresponding to the field type string


Methods

  • 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


  • 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


  • 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


  • 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


  • 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()


  • Compiled(self) Checks if the form has already been compiled

    return: Boolean


  • EnableField(self, ctrl, enable) Enable or disable an input field return: False - no such control


  • Execute(self) Displays a modal dialog containing the compiled form. return: 1 - ok ; 0 - cancel


  • FindControlById(self, id) Finds a control instance given its id


  • Free(self) Frees all resources associated with a compiled form. Make sure you call this function when you finish using the form.


  • 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


  • GetFocusedField(self) Get currently focused input field. return: None if no field is selected otherwise the control ID


  • MoveField(self, ctrl, x, y, w, h) Move/resize an input field

    return: False - no such fiel


  • Open(self) Opens a widget containing the compiled form.


  • RefreshField(self, ctrl) Refresh a field return: False - no such control


  • 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


  • SetFocusedField(self, ctrl) Set currently focused input field return: False - no such control


  • ShowField(self, ctrl, show) Show or hide an input field return: False - no such control


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, _hkcb_flags=0x0001) -> View_Hooks

 _flags: uint32
 _hkcb_flags: uint32

Ancestors (in MRO)

* ida_kernwin.CustomIDAMemo
* ida_kernwin.View_Hooks

Methods

  • Bind(self)


  • Unbind(self)


PluginForm()

: PluginForm class.

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

Class variables

  • VALID_CAPSULE_NAME


  • WCLS_CLOSE_LATER


  • WCLS_DELETE_LATER


  • WCLS_DONT_SAVE_SIZE


  • WCLS_NO_CONTEXT


  • WCLS_SAVE


  • WOPN_CENTERED


  • WOPN_CREATE_ONLY


  • WOPN_DP_BEFORE


  • WOPN_DP_BOTTOM


  • WOPN_DP_FLOATING


  • WOPN_DP_INSIDE


  • WOPN_DP_INSIDE_BEFORE


  • WOPN_DP_LEFT


  • WOPN_DP_RIGHT


  • WOPN_DP_SZHINT


  • WOPN_DP_TAB


  • WOPN_DP_TAB_BEFORE


  • WOPN_DP_TOP


  • WOPN_MDI


  • WOPN_MENU


  • WOPN_ONTOP


  • WOPN_PERSIST


  • WOPN_RESTORE


  • WOPN_TAB


Static methods

  • 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


  • 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


  • 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


  • 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


  • 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

  • Close(self, options) Closes the form.

    options: Close options (WCLS_SAVE, WCLS_NO_CONTEXT, ...)

    return: None


  • GetWidget(self) Return the TWidget underlying this view.

    return: The TWidget underlying this view, or None.


  • OnClose(self, form) Called when the plugin form is closed

    return: None


  • 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


  • 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


UI_Hooks()

: Proxy of C++ UI_Hooks class.

__init__(self, _flags=0, _hkcb_flags=0x0001) -> UI_Hooks

 _flags: uint32
 _hkcb_flags: uint32

Descendants

* ida_graph.GraphViewer.UI_Hooks_Trampoline
* ida_kernwin.Choose.UI_Hooks_Trampoline
* ida_kernwin.simplecustviewer_t.UI_Hooks_Trampoline

Methods

  • create_desktop_widget(self, title: char const *, cfg: jobj_wrapper_t) ‑> PyObject * create_desktop_widget(self, title, cfg) -> PyObject * create a widget, to be placed in the widget tree (at desktop-creation time.)

    title: (const char *) cfg: (const jobj_t *) return: TWidget * the created widget, or null


  • current_widget_changed(self, widget: TWidget *, prev_widget: TWidget *) ‑> void current_widget_changed(self, widget, prev_widget) The currently-active TWidget changed.

    widget: (TWidget *) prev_widget: (TWidget *)


  • database_closed(self, *args) database_closed(self) 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().


  • database_inited(self, is_new_database: int, idc_script: char const *) ‑> void database_inited(self, is_new_database, idc_script) database initialization has completed. the kernel is about to run idc scripts

    is_new_database: (int) idc_script: (const char *) - may be nullptr return: void See also ui_initing_database. This event is called for both new and old databases.


  • debugger_menu_change(self, enable: bool) ‑> void debugger_menu_change(self, enable) debugger menu modification detected

    enable: (bool) true: debugger menu has been added, or a different debugger has been selected false: debugger menu will be removed (user switched to "No debugger")


  • desktop_applied(self, name: char const *, from_idb: bool, type: int) ‑> void desktop_applied(self, name, from_idb, type) a desktop has been applied

    name: (const char *) the desktop name from_idb: (bool) the desktop was stored in the IDB (false if it comes from the registry) type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge)


  • destroying_plugmod(self, plugmod: plugmod_t, entry: plugin_t const *) ‑> void destroying_plugmod(self, plugmod, entry) The plugin object is about to be destroyed

    plugmod: (const plugmod_t *) entry: (const plugin_t *)


  • destroying_procmod(self, procmod: procmod_t) ‑> void destroying_procmod(self, procmod) The processor module is about to be destroyed

    procmod: (const procmod_t *)


  • finish_populating_widget_popup(self, widget: TWidget *, popup_handle: TPopupMenu *, ctx: action_ctx_base_t = None) ‑> void finish_populating_widget_popup(self, widget, popup_handle, ctx=None) IDA is about to be done populating the context menu for a widget. This is your chance to attach_action_to_popup().

    widget: (TWidget *) popup_handle: (TPopupMenu *) ctx: (const action_activation_ctx_t *)


  • get_chooser_item_attrs(self, chooser: chooser_base_t, n: size_t, attrs: chooser_item_attrs_t) ‑> void get_chooser_item_attrs(self, chooser, n, attrs) get item-specific attributes for a chooser. This callback is generated only after enable_chooser_attrs()

    chooser: (const chooser_base_t *) n: (::size_t) attrs: (chooser_item_attrs_t *)


  • get_custom_viewer_hint(self, viewer: TWidget *, place: place_t) ‑> PyObject * get_custom_viewer_hint(self, viewer, place) -> 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 text where text will be highlighted CAPTION caption caption for the hint widget

    viewer: (TWidget*) viewer place: (place_t *) current position in the viewer retval 0: continue collecting hints with other subscribers retval 1: stop collecting hints


  • get_ea_hint(self, ea: ea_t) ‑> PyObject * get_ea_hint(self, ea) -> 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

    ea: (::ea_t) return: true if generated a hint


  • get_item_hint(self, ea: ea_t, max_lines: int) ‑> PyObject * get_item_hint(self, ea, max_lines) -> PyObject * ui wants to display multiline hint for an item. See also more generic ui_get_custom_viewer_hint

    ea: (ea_t) or item id like a structure or enum member max_lines: (int) maximal number of lines return: true if generated a hint


  • get_lines_rendering_info(self, out: lines_rendering_output_t, widget: TWidget const *, info: lines_rendering_input_t) ‑> void get_lines_rendering_info(self, out, widget, info) get lines rendering information

    out: (lines_rendering_output_t *) widget: (const TWidget *) info: (const lines_rendering_input_t *)


  • get_widget_config(self, widget: TWidget const *, cfg: jobj_t *) ‑> PyObject * get_widget_config(self, widget, cfg) -> PyObject * retrieve the widget configuration (it will be passed back at ui_create_desktop_widget-, and ui_set_widget_config-time)

    widget: (const TWidget *) cfg: (jobj_t *)


  • hook(self) ‑> bool hook(self) -> bool


  • idcstart(self) ‑> void idcstart(self) Start of IDC engine work.


  • idcstop(self) ‑> void idcstop(self) Stop of IDC engine work.


  • initing_database(self) ‑> void initing_database(self) database initialization has started.

    return: void See also ui_database_inited. This event is called for both new and old databases.


  • plugin_loaded(self, plugin_info: plugin_info_t const *) ‑> void plugin_loaded(self, plugin_info) The plugin was loaded in memory.

    plugin_info: (const plugin_info_t *)


  • plugin_unloading(self, plugin_info: plugin_info_t const *) ‑> void plugin_unloading(self, plugin_info) The plugin is about to be unloaded

    plugin_info: (const plugin_info_t *)


  • populating_widget_popup(self, widget: TWidget *, popup_handle: TPopupMenu *, ctx: action_ctx_base_t = None) ‑> void populating_widget_popup(self, widget, popup_handle, ctx=None) 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.)

    widget: (TWidget *) popup_handle: (TPopupMenu *) ctx: (const action_activation_ctx_t *)


  • postprocess_action(self) ‑> void postprocess_action(self) an ida ui action has been handled


  • preprocess_action(self, name: char const *) ‑> int preprocess_action(self, name) -> int ida ui is about to handle a user action.

    name: (const char *) ui action name. these names can be looked up in ida[tg]ui.cfg retval 0: ok retval nonzero: a plugin has handled the command


  • range(self) ‑> void range(self) The disassembly range has been changed ( idainfo::min_ea ... idainfo::max_ea). UI should redraw the scrollbars. See also: ui_lock_range_refresh


  • ready_to_run(self) ‑> void ready_to_run(self) all UI elements have been initialized. Automatic plugins may hook to this event to perform their tasks.


  • resume(self) ‑> void resume(self) Resume the suspended graphical interface. Only the text version. Interface should respond to it


  • saved(self, path: char const *) ‑> void saved(self, path) 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.

    path: (const char *) the database path


  • saving(self) ‑> void saving(self) The kernel is flushing its buffers to the disk. The user interface should save its state. Parameters: none Returns: none


  • screen_ea_changed(self, ea: ea_t, prev_ea: ea_t) ‑> void screen_ea_changed(self, ea, prev_ea) The "current address" changed

    ea: (ea_t) prev_ea: (ea_t)


  • set_widget_config(self, widget: TWidget const *, cfg: jobj_wrapper_t) ‑> void set_widget_config(self, widget, cfg) set the widget configuration

    widget: (const TWidget *) cfg: (const jobj_t *)


  • suspend(self) ‑> void suspend(self) Suspend graphical interface. Only the text version. Interface should respond to it.


  • unhook(self) ‑> bool unhook(self) -> bool


  • updated_actions(self) ‑> void updated_actions(self) IDA is done updating actions.


  • updating_actions(self, ctx: action_ctx_base_t) ‑> void updating_actions(self, ctx) 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.

    ctx: (action_update_ctx_t *)


  • widget_closing(self, widget: TWidget *) ‑> void widget_closing(self, widget) 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: (TWidget *)


  • widget_invisible(self, widget: TWidget *) ‑> void widget_invisible(self, widget) TWidget is being closed. Use this event to destroy the window controls

    widget: (TWidget *)


  • widget_visible(self, widget: TWidget *) ‑> void widget_visible(self, widget) TWidget is displayed on the screen. Use this event to populate the window with controls

    widget: (TWidget *)


View_Hooks()

: Proxy of C++ View_Hooks class.

__init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks

 _flags: uint32
 _hkcb_flags: uint32

Descendants

* ida_kernwin.CustomIDAMemo

Methods

  • hook(self) ‑> bool hook(self) -> bool


  • unhook(self) ‑> bool unhook(self) -> bool


  • view_activated(self, view: TWidget *) ‑> void view_activated(self, view) A view is activated

    view: (TWidget *)


  • view_click(self, view: TWidget *, event: view_mouse_event_t) ‑> void view_click(self, view, event) Click event

    view: (TWidget *) event: (const view_mouse_event_t *)


  • view_close(self, view: TWidget *) ‑> void view_close(self, view) View closed

    view: (TWidget *)


  • view_created(self, view: TWidget *) ‑> void view_created(self, view) A view is being created.

    view: (TWidget *)


  • view_curpos(self, view: TWidget *) ‑> void view_curpos(self, view) Cursor position changed

    view: (TWidget *)


  • view_dblclick(self, view: TWidget *, event: view_mouse_event_t) ‑> void view_dblclick(self, view, event) Double click event

    view: (TWidget *) event: (const view_mouse_event_t *)


  • view_deactivated(self, view: TWidget *) ‑> void view_deactivated(self, view) A view is deactivated

    view: (TWidget *)


  • view_keydown(self, view: TWidget *, key: int, state: view_event_state_t) ‑> void view_keydown(self, view, key, state) Key down event

    view: (TWidget *) key: (int) state: (::view_event_state_t)


  • view_loc_changed(self, view: TWidget *, now: lochist_entry_t const *, was: lochist_entry_t const *) ‑> void view_loc_changed(self, view, now, was) The location for the view has changed (can be either the place_t, the renderer_info_t, or both.)

    view: (TWidget *) now: (const lochist_entry_t *) was: (const lochist_entry_t *)


  • view_mouse_moved(self, view: TWidget *, event: view_mouse_event_t) ‑> void view_mouse_moved(self, view, event) The mouse moved on the view

    view: (TWidget *) event: (const view_mouse_event_t *)


  • view_mouse_over(self, view: TWidget *, event: view_mouse_event_t) ‑> void view_mouse_over(self, view, event) The user moved the mouse over (or out of) a node or an edge. This is only relevant in a graph view.

    view: (TWidget *) event: (const view_mouse_event_t *)


  • view_switched(self, view: TWidget *, rt: tcc_renderer_type_t) ‑> void view_switched(self, view, rt) A view's renderer has changed.

    view: (TWidget *) rt: (tcc_renderer_type_t)


action_ctx_base_cur_sel_t()

: Proxy of C++ action_ctx_base_cur_sel_t class.

__init__(self) -> action_ctx_base_cur_sel_t

Instance variables

  • to: ida_kernwin.twinpos_t to


Methods

  • reset(self) ‑> void reset(self)


action_ctx_base_source_t()

: Proxy of C++ action_ctx_base_source_t class.

__init__(self) -> action_ctx_base_source_t

Instance variables

  • chooser: chooser_base_t * chooser


Methods

  • reset(self) ‑> void reset(self)


action_ctx_base_t()

: Proxy of C++ action_ctx_base_t class.

__init__(self) -> action_ctx_base_t

Instance variables

  • action: char const * action


  • chooser_selection: sizevec_t chooser_selection


  • cur_ea: ea_t cur_ea


  • cur_extracted_ea cur_value


  • cur_fchunk: func_t * cur_fchunk


  • cur_flags: uint32 cur_flags


  • cur_func: func_t * cur_func


  • cur_seg: segment_t * cur_seg


  • cur_sel: action_ctx_base_cur_sel_t cur_sel


  • cur_strmem: member_t * cur_strmem


  • cur_struc: struc_t * cur_struc


  • cur_value: uval_t cur_value


  • dirtree_selection: dirtree_selection_t * dirtree_selection


  • focus: TWidget * focus


  • form


  • form_title


  • form_type


  • graph_selection: screen_graph_selection_t * graph_selection


  • regname: char const * regname


  • source: action_ctx_base_source_t source


  • type_ref: til_type_ref_t * type_ref


  • widget: TWidget * widget


  • widget_title: qstring widget_title


  • widget_type: twidget_type_t widget_type


Methods

  • has_flag(self, flag: uint32) ‑> bool has_flag(self, flag) -> bool Check if the given flag is set.

    flag: (C++: uint32)


  • reset(self) ‑> void reset(self) Invalidate all context info.


action_desc_t(name: char const *, label: char const *, handler: PyObject *, shortcut: char const * = None, tooltip: char const * = None, icon: int = -1, flags: int = 0)

: 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

  • cb: int cb


  • flags: int flags


  • icon: int icon


  • label: char const * label


  • name: char const * name


  • owner: void const * owner


  • shortcut: char const * shortcut


  • tooltip: char const * tooltip


action_handler_t()

:

Descendants

* ida_kernwin.quick_widget_commands_t._ah_t

Methods

  • activate(self, ctx) Activate an action. This function implements the core behavior of an action. It is called when the action is triggered, from a menu, from a popup menu, from the toolbar, or programmatically.

    return: non-zero: all IDA windows will be refreshed


  • update(self, ctx) Update an action. This is called when the context of the UI changed, and we need to let the action update some of its properties if needed (label, icon, ...)

    In addition, this lets IDA know whether the action is enabled, and when it should be queried for availability again.

    Note: This callback is not meant to change anything in the application's state, except by calling one (or many) of the "update_action_*()" functions on this very action.


addon_info_t()

: Proxy of C++ addon_info_t class.

__init__(self) -> addon_info_t

Instance variables

  • cb: size_t cb


  • custom_data: void const * custom_data


  • custom_size: size_t custom_size


  • freeform: char const * freeform


  • id: char const * id


  • name: char const * name


  • producer: char const * producer


  • url: char const * url


  • version: char const * version


chooser_base_t(*args, **kwargs)

: Proxy of C++ chooser_base_t class.

Class variables

  • NSTDPOPUPS


  • POPUP_DEL


  • POPUP_EDIT


  • POPUP_INS


  • POPUP_REFRESH


Instance variables

  • columns: int columns


  • deflt_col: int deflt_col


  • header: char const *const * header


  • height: int height


  • icon: int icon


  • popup_names: qstring [chooser_base_t::NSTDPOPUPS] popup_names


  • title: char const * title


  • width: int width


  • widths: int const * widths


  • x0: int x0


  • x1: int x1


  • y0: int y0


  • y1: int y1


Methods

  • ask_item_attrs(self) ‑> bool ask_item_attrs(self) -> bool should chooser generate ui_get_chooser_item_attrs events?


  • can_del(self) ‑> bool can_del(self) -> bool


  • can_edit(self) ‑> bool can_edit(self) -> bool


  • can_filter(self) ‑> bool can_filter(self) -> bool


  • can_ins(self) ‑> bool can_ins(self) -> bool is an operation allowed?


  • can_refresh(self) ‑> bool can_refresh(self) -> bool


  • can_sort(self) ‑> bool can_sort(self) -> bool


  • get_builtin_number(self) ‑> uint get_builtin_number(self) -> uint get number of the built-in chooser


  • get_count(self) ‑> size_t get_count(self) -> size_t get the number of elements in the chooser


  • get_ea(self, arg2: size_t) ‑> ea_t get_ea(self, arg2) -> ea_t get the address of an element. When this function returns valid addresses: * If any column has the CHCOL_FNAME flag, rows will be colored according to the attributes of the functions who own those addresses (extern, library function, Lumina, ... - similar to what the "Functions" widget does) * When a selection is present and the user presses <Enter> (<Shift+Enter> if the chooser is modal), IDA will jump to that address (through jumpto())

    arg2: size_t return: the effective address, BADADDR if the element has no address


  • get_quick_filter_initial_mode(self) ‑> int get_quick_filter_initial_mode(self) -> int


  • get_row(self, n: size_t) ‑> PyObject * get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) get a description of an element.

    n: (C++: size_t) element number (0..get_count()-1)


  • has_diff_capability(self) ‑> bool has_diff_capability(self) -> bool


  • has_dirtree(self) ‑> bool has_dirtree(self) -> bool


  • has_inode_to_index(self) ‑> bool has_inode_to_index(self) -> bool


  • has_widget_lifecycle(self) ‑> bool has_widget_lifecycle(self) -> bool should chooser object be deleted when the widget gets destroyed?


  • is_dirtree_persisted(self) ‑> bool is_dirtree_persisted(self) -> bool


  • is_force_default(self) ‑> bool is_force_default(self) -> bool should selection of the already opened non-modal chooser be changed?


  • is_lazy_loaded(self) ‑> bool is_lazy_loaded(self) -> bool


  • is_modal(self) ‑> bool is_modal(self) -> bool is choose modal?


  • is_multi(self) ‑> bool is_multi(self) -> bool is multi-selection allowed?


  • is_quick_filter_visible_initially(self) ‑> bool is_quick_filter_visible_initially(self) -> bool


  • is_same(self, other: chooser_base_t) ‑> bool is_same(self, other) -> bool do the current and the given objects hold the same data?

    other: (C++: const chooser_base_t *) chooser_base_t const *


  • is_status_bar_hidden(self) ‑> bool is_status_bar_hidden(self) -> bool


  • popup_allowed(self, stdact_idx: int) ‑> bool popup_allowed(self, stdact_idx) -> bool is a standard action allowed?

    stdact_idx: (C++: int)


  • should_rename_trigger_edit(self) ‑> bool should_rename_trigger_edit(self) -> bool


  • should_restore_geometry(self) ‑> bool should_restore_geometry(self) -> bool


chooser_item_attrs_t()

: Proxy of C++ chooser_item_attrs_t class.

__init__(self) -> chooser_item_attrs_t

Instance variables

  • color: bgcolor_t color


  • flags: int flags


Methods

  • reset(self) ‑> void reset(self)


chooser_row_info_t()

: Proxy of C++ chooser_row_info_t class.

__init__(self) -> chooser_row_info_t

Instance variables

  • attrs: chooser_item_attrs_t attrs


  • icon: int icon


  • texts: qstrvec_t texts


chooser_row_info_vec_t(*args)

: Proxy of C++ qvector< chooser_row_info_t > class.

__init__(self) -> chooser_row_info_vec_t
__init__(self, x) -> chooser_row_info_vec_t

 x: qvector< chooser_row_info_t > const &

Methods

  • add_unique(self, x: chooser_row_info_t) ‑> bool add_unique(self, x) -> bool

    x: chooser_row_info_t const &


  • at(self, _idx: size_t) ‑> chooser_row_info_t const & at(self, _idx) -> chooser_row_info_t

    _idx: size_t


  • back(self)


  • begin(self, *args) ‑> qvector< chooser_row_info_t >::const_iterator begin(self) -> chooser_row_info_t


  • capacity(self) ‑> size_t capacity(self) -> size_t


  • clear(self) ‑> void clear(self)


  • empty(self) ‑> bool empty(self) -> bool


  • end(self, *args) ‑> qvector< chooser_row_info_t >::const_iterator end(self) -> chooser_row_info_t


  • erase(self, *args) ‑> qvector< chooser_row_info_t >::iterator erase(self, it) -> chooser_row_info_t

    it: qvector< chooser_row_info_t >::iterator

    erase(self, first, last) -> chooser_row_info_t

    first: qvector< chooser_row_info_t >::iterator last: qvector< chooser_row_info_t >::iterator


  • extract(self) ‑> chooser_row_info_t * extract(self) -> chooser_row_info_t


  • find(self, *args) ‑> qvector< chooser_row_info_t >::const_iterator find(self, x) -> chooser_row_info_t

    x: chooser_row_info_t const &


  • front(self)


  • grow(self, *args) ‑> void grow(self, x=chooser_row_info_t())

    x: chooser_row_info_t const &


  • has(self, x: chooser_row_info_t) ‑> bool has(self, x) -> bool

    x: chooser_row_info_t const &


  • inject(self, s: chooser_row_info_t, len: size_t) ‑> void inject(self, s, len)

    s: chooser_row_info_t * len: size_t


  • insert(self, it: chooser_row_info_t, x: chooser_row_info_t) ‑> qvector< chooser_row_info_t >::iterator insert(self, it, x) -> chooser_row_info_t

    it: qvector< chooser_row_info_t >::iterator x: chooser_row_info_t const &


  • pop_back(self) ‑> void pop_back(self)


  • push_back(self, *args) ‑> chooser_row_info_t & push_back(self, x)

    x: chooser_row_info_t const &

    push_back(self) -> chooser_row_info_t


  • qclear(self) ‑> void qclear(self)


  • reserve(self, cnt: size_t) ‑> void reserve(self, cnt)

    cnt: size_t


  • resize(self, *args) ‑> void resize(self, _newsize, x)

    _newsize: size_t x: chooser_row_info_t const &

    resize(self, _newsize)

    _newsize: size_t


  • size(self) ‑> size_t size(self) -> size_t


  • swap(self, r: chooser_row_info_vec_t) ‑> void swap(self, r)

    r: qvector< chooser_row_info_t > &


  • truncate(self) ‑> void truncate(self)


chooser_stdact_desc_t()

: Proxy of C++ chooser_stdact_desc_t class.

__init__(self, _label=None, _tooltip=None, _icon=-1) -> chooser_stdact_desc_t

 _label: char const *
 _tooltip: char const *
 _icon: int

Instance variables

  • icon: int icon


  • label: char const * label


  • tooltip: char const * tooltip


  • version: int version


Methods

  • ucb(self, arg0: action_ctx_base_t) ‑> action_state_t ucb(self, arg0) -> action_state_t the update callback, see action_handler_t::update() When the update callback is called from the chooser UI engine, it can be sure that ctx.source.chooser is a valid pointer to chooser_base_t and that there are selected items for the Delete and Edit actions.

    arg0: action_update_ctx_t *


cli_t()

: cli_t wrapper class.

This class allows you to implement your own command line interface handlers.

Ancestors (in MRO)

* ida_idaapi.pyidc_opaque_object_t

Methods

  • 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


  • 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


  • 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)


  • 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


  • unregister(self) Unregisters the CLI (if it was registered)


disabled_script_timeout_t()

:

disasm_line_t(*args)

: Proxy of C++ disasm_line_t class.

__init__(self) -> disasm_line_t
__init__(self, other) -> disasm_line_t

 other: disasm_line_t const &

Instance variables

  • at: place_t * at


  • bg_color: bgcolor_t bg_color


  • is_default: bool is_default


  • line: qstring line


  • prefix_color: color_t prefix_color


disasm_text_t(*args)

: Proxy of C++ qvector< disasm_line_t > class.

__init__(self) -> disasm_text_t
__init__(self, x) -> disasm_text_t

 x: qvector< disasm_line_t > const &

Methods

  • at(self, _idx: size_t) ‑> disasm_line_t const & at(self, _idx) -> disasm_line_t

    _idx: size_t


  • back(self)


  • begin(self, *args) ‑> qvector< disasm_line_t >::const_iterator begin(self) -> disasm_line_t


  • capacity(self) ‑> size_t capacity(self) -> size_t


  • clear(self) ‑> void clear(self)


  • empty(self) ‑> bool empty(self) -> bool


  • end(self, *args) ‑> qvector< disasm_line_t >::const_iterator end(self) -> disasm_line_t


  • 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


  • extract(self) ‑> disasm_line_t * extract(self) -> disasm_line_t


  • front(self)


  • grow(self, *args) ‑> void grow(self, x=disasm_line_t())

    x: disasm_line_t const &


  • inject(self, s: disasm_line_t, len: size_t) ‑> void inject(self, s, len)

    s: disasm_line_t * len: size_t


  • insert(self, it: disasm_line_t, x: disasm_line_t) ‑> qvector< disasm_line_t >::iterator insert(self, it, x) -> disasm_line_t

    it: qvector< disasm_line_t >::iterator x: disasm_line_t const &


  • pop_back(self) ‑> void pop_back(self)


  • push_back(self, *args) ‑> disasm_line_t & push_back(self, x)

    x: disasm_line_t const &

    push_back(self) -> disasm_line_t


  • qclear(self) ‑> void qclear(self)


  • reserve(self, cnt: size_t) ‑> void reserve(self, cnt)

    cnt: size_t


  • resize(self, *args) ‑> void resize(self, _newsize, x)

    _newsize: size_t x: disasm_line_t const &

    resize(self, _newsize)

    _newsize: size_t


  • size(self) ‑> size_t size(self) -> size_t


  • swap(self, r: disasm_text_t) ‑> void swap(self, r)

    r: qvector< disasm_line_t > &


  • truncate(self) ‑> void truncate(self)


idaplace_t(*args, **kwargs)

: Proxy of C++ idaplace_t class.

Ancestors (in MRO)

* ida_kernwin.place_t

Instance variables

  • ea: ea_t ea


input_event_keyboard_data_t()

: Proxy of C++ input_event_t::input_event_keyboard_data_t class.

__init__(self) -> input_event_keyboard_data_t

Instance variables

  • key: int key


  • text: char [8] text


input_event_mouse_data_t()

: Proxy of C++ input_event_t::input_event_mouse_data_t class.

__init__(self) -> input_event_mouse_data_t

Instance variables

  • button: vme_button_t button


  • x: int x


  • y: int y


input_event_shortcut_data_t()

: Proxy of C++ input_event_t::input_event_shortcut_data_t class.

__init__(self) -> input_event_shortcut_data_t

Instance variables

  • action_name: char const * action_name


input_event_t()

: Proxy of C++ input_event_t class.

__init__(self) -> input_event_t

Instance variables

  • cb: int cb


  • keyboard: input_event_t::input_event_keyboard_data_t keyboard


  • kind: input_event_kind_t kind


  • modifiers: input_event_modifiers_t modifiers


  • mouse: input_event_t::input_event_mouse_data_t mouse


  • shortcut: input_event_t::input_event_shortcut_data_t shortcut


  • source: void * source


  • target: TWidget * target


Methods

  • get_source_QEvent(self)


  • get_target_QWidget(self)


jobj_wrapper_t(*args, **kwargs)

: Proxy of C++ jobj_wrapper_t class.

Methods

  • get_dict(self) ‑> PyObject * get_dict(self) -> dict


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
__init__(self, x) -> line_rendering_output_entries_refs_t

 x: qvector< line_rendering_output_entry_t * > const &

Methods

  • add_unique(self, x: line_rendering_output_entry_t) ‑> bool add_unique(self, x) -> bool

    x: line_rendering_output_entry_t *const &


  • at(self, _idx: size_t) ‑> line_rendering_output_entry_t *const & at(self, _idx) -> line_rendering_output_entry_t

    _idx: size_t


  • back(self)


  • 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


  • capacity(self) ‑> size_t capacity(self) -> size_t


  • clear(self) ‑> void clear(self)


  • empty(self) ‑> bool empty(self) -> bool


  • 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


  • 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


  • extract(self) ‑> line_rendering_output_entry_t ** extract(self) -> line_rendering_output_entry_t **


  • 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 &


  • front(self)


  • has(self, x: line_rendering_output_entry_t) ‑> bool has(self, x) -> bool

    x: line_rendering_output_entry_t *const &


  • inject(self, s: line_rendering_output_entry_t **, len: size_t) ‑> void inject(self, s, len)

    s: line_rendering_output_entry_t ** len: size_t


  • insert(self, it: qvector< line_rendering_output_entry_t * >::iterator, x: line_rendering_output_entry_t) ‑> 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 &


  • pop_back(self) ‑> void pop_back(self)


  • push_back(self, e)


  • qclear(self) ‑> void qclear(self)


  • reserve(self, cnt: size_t) ‑> void reserve(self, cnt)

    cnt: size_t


  • resize(self, *args) ‑> void resize(self, _newsize, x)

    _newsize: size_t x: line_rendering_output_entry_t *const &

    resize(self, _newsize)

    _newsize: size_t


  • size(self) ‑> size_t size(self) -> size_t


  • swap(self, r: line_rendering_output_entries_refs_t) ‑> void swap(self, r)

    r: qvector< line_rendering_output_entry_t * > &


  • truncate(self) ‑> void truncate(self)


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

  • bg_color: bgcolor_t bg_color


  • cpx: int cpx


  • flags: uint32 flags


  • line: twinline_t const * line


  • nchars: int nchars


Methods

  • is_bg_color_direct(self) ‑> bool is_bg_color_direct(self) -> bool


  • is_bg_color_empty(self) ‑> bool is_bg_color_empty(self) -> bool


  • is_bg_color_key(self) ‑> bool is_bg_color_key(self) -> bool


line_section_t()

: Proxy of C++ line_section_t class.

__init__(self) -> line_section_t

Descendants

* ida_kernwin.tagged_line_section_t

Instance variables

  • length: cplen_t length


  • start: cpidx_t start


Methods

  • contains(self, x: cpidx_t) ‑> bool contains(self, x) -> bool

    x: cpidx_t


  • is_closed(self) ‑> bool is_closed(self) -> bool


  • is_open(self) ‑> bool is_open(self) -> bool


  • valid(self) ‑> bool valid(self) -> bool


linearray_t(_ud: void *)

: Proxy of C++ linearray_t class.

__init__(self, _ud) -> linearray_t

 _ud: void *

Methods

  • beginning(self) ‑> bool beginning(self) -> bool Are we at the beginning?


  • down(self) ‑> qstring const * down(self) -> qstring const * Get a line from down direction. place is ok BEFORE


  • ending(self) ‑> bool ending(self) -> bool


  • get_bg_color(self) ‑> bgcolor_t get_bg_color(self) -> bgcolor_t Get current background color. (the same behavior as with get_place(): good before down() and after up())


  • get_dlnnum(self) ‑> int get_dlnnum(self) -> int Get default line number. (the same behavior as with get_place(): good before down() and after up())


  • get_linecnt(self) ‑> int get_linecnt(self) -> int Get number of lines for the current place. (the same behavior as with get_place(): good before down() and after up())


  • get_pfx_color(self) ‑> bgcolor_t get_pfx_color(self) -> bgcolor_t Get current prefix color. (the same behavior as with get_place(): good before down() and after up())


  • get_place(self) ‑> place_t * get_place(self) -> 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().


  • set_place(self, new_at: place_t) ‑> int set_place(self, new_at) -> 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.

    new_at: (C++: const place_t *) new position of the array 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.


  • set_userdata(self, userd: void *) ‑> void set_userdata(self, userd) Change the user data.

    userd: (C++: void *)


  • up(self) ‑> qstring const * up(self) -> qstring const * Get a line from up direction. place is ok AFTER


  • userdata(self) ‑> void * userdata(self) -> void * Get pointer to user data.


lines_rendering_input_t()

: Proxy of C++ lines_rendering_input_t class.

__init__(self) -> lines_rendering_input_t

Instance variables

  • cb: int cb


  • sections_lines: sections_lines_refs_t sections_lines


  • sync_group: synced_group_t const * sync_group


lines_rendering_output_t()

: Proxy of C++ lines_rendering_output_t class.

__init__(self) -> lines_rendering_output_t

Instance variables

  • entries: line_rendering_output_entries_refs_t entries


  • flags: uint32 flags


Methods

  • clear(self) ‑> void clear(self)


  • swap(self, r: lines_rendering_output_t) ‑> void swap(self, r)

    r: lines_rendering_output_t &


listing_location_t()

: Proxy of C++ listing_location_t class.

__init__(self) -> listing_location_t

Instance variables

  • cb: int cb


  • loc: lochist_entry_t const * loc


  • tagged_sections: tagged_line_sections_t const * tagged_sections


  • text: qstring const * text


place_t(*args, **kwargs)

: Proxy of C++ place_t class.

Descendants

* ida_kernwin.idaplace_t
* ida_kernwin.simpleline_place_t
* ida_kernwin.tiplace_t

Static methods

  • as_idaplace_t(p: place_t) ‑> idaplace_t * as_idaplace_t(p) -> idaplace_t

    p: place_t *


  • as_simpleline_place_t(p: place_t) ‑> simpleline_place_t * as_simpleline_place_t(p) -> simpleline_place_t

    p: place_t *


  • as_tiplace_t(p: place_t) ‑> tiplace_t * as_tiplace_t(p) -> tiplace_t

    p: place_t *


Instance variables

  • lnnum: int lnnum


Methods

  • adjust(self, ud: void *) ‑> void adjust(self, ud) 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.

    ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t


  • beginning(self, ud: void *) ‑> bool beginning(self, ud) -> bool Are we at the first displayable object?.

    ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t return: true if the current location points to the first displayable object


  • clone(self) ‑> place_t * clone(self) -> place_t Clone the location.

    return: a pointer to a copy of the current location in dynamic memory


  • compare(self, t2: place_t) ‑> int compare(self, t2) -> int Deprecated. Please consider compare2(const place_t *, void *) instead.

    t2: (C++: const place_t *) place_t const *


  • compare2(self, t2: place_t, arg3: void *) ‑> int compare2(self, t2, arg3) -> 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.

    t2: (C++: const place_t *) the place to compare this one to. arg3: void *


  • copyfrom(self, _from: place_t) ‑> void copyfrom(self, _from) Copy the specified location object to the current object.

    from: (C++: const place_t *) place_t const *


  • deserialize(self, _in: bytevec_t const &) ‑> bool deserialize(self, _in) -> bool De-serialize into this instance. 'pptr' should be incremented by as many bytes as de-serialization consumed.

    pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. return: whether de-serialization was successful


  • ending(self, ud: void *) ‑> bool ending(self, ud) -> bool Are we at the last displayable object?.

    ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t return: true if the current location points to the last displayable object


  • enter(self, arg2: uint32 *) ‑> place_t * enter(self, arg2) -> 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()'.

    out_flags: flags to be used together with the place_t that is returned, in order to restore the section to its original state when leave() is called. 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.


  • generate(self, ud: void *, maxsize: int) ‑> PyObject * generate(self, ud, maxsize) -> ([str, ...], int, int, int) Generate text lines for the current location.

    ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t maxsize: (C++: int) the maximum number of lines to generate return: number of generated lines


  • id(self) ‑> int id(self) -> int Get the place's ID (i.e., the value returned by register_place_class())

    return: the id


  • leave(self, arg2: uint32) ‑> void leave(self, arg2) Leave this place, possibly 'hiding' a section of text that was previously expanded (at enter()-time.)

    arg2: uint32


  • makeplace(self, ud: void *, x: uval_t, lnnum: int) ‑> place_t * makeplace(self, ud, x, lnnum) -> 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.

    ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t x: (C++: uval_t) number to map lnnum: (C++: int) line number to initialize 'lnnum' return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES


  • name(self) ‑> char const * name(self) -> char const * Get this place type name. All instances of a given class must return the same string.

    return: the place type name. Please try and pick something that is not too generic, as it might clash w/ other plugins. A good practice is to prefix the class name with the name of your plugin. E.g., "myplugin:srcplace_t".


  • next(self, ud: void *) ‑> bool next(self, ud) -> bool Move to the next displayable location.

    ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t return: success


  • prev(self, ud: void *) ‑> bool prev(self, ud) -> bool Move to the previous displayable location.

    ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t return: success


  • rebase(self, arg2: segm_move_infos_t const &) ‑> bool rebase(self, arg2) -> bool Rebase the place instance

    arg2: segm_move_infos_t const & return: true if place was rebased, false otherwise


  • serialize(self) ‑> void serialize(self) 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.


  • toea(self) ‑> ea_t toea(self) -> ea_t Map the location to an ea_t.

    return: the corresponding ea_t, or BADADDR;


  • touval(self, ud: void *) ‑> uval_t touval(self, ud) -> uval_t Map the location to a number. This mapping is used to draw the vertical scrollbar.

    ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t


quick_widget_commands_t(callback)

:

Methods

  • add(self, caption, flags, menu_index, icon, emb, shortcut)


  • populate_popup(self, widget, popup)


renderer_pos_info_t()

: Proxy of C++ renderer_pos_info_t class.

__init__(self) -> renderer_pos_info_t

Instance variables

  • cx: short cx


  • cy: short cy


  • node: int node


  • sx: short sx


section_lines_refs_t(*args)

: Proxy of C++ qvector< twinline_t const * > class.

__init__(self) -> section_lines_refs_t
__init__(self, x) -> section_lines_refs_t

 x: qvector< twinline_t const * > const &

Methods

  • add_unique(self, x: twinline_t) ‑> bool add_unique(self, x) -> bool

    x: twinline_t const *const &


  • at(self, _idx: size_t) ‑> twinline_t const *const & at(self, _idx) -> twinline_t

    _idx: size_t


  • back(self)


  • begin(self, *args) ‑> qvector< twinline_t const * >::const_iterator begin(self) -> qvector< twinline_t const * >::iterator begin(self) -> qvector< twinline_t const * >::const_iterator


  • capacity(self) ‑> size_t capacity(self) -> size_t


  • clear(self) ‑> void clear(self)


  • empty(self) ‑> bool empty(self) -> bool


  • end(self, *args) ‑> qvector< twinline_t const * >::const_iterator end(self) -> qvector< twinline_t const * >::iterator end(self) -> qvector< twinline_t const * >::const_iterator


  • 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


  • extract(self) ‑> twinline_t const ** extract(self) -> twinline_t const **


  • 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 &


  • front(self)


  • has(self, x: twinline_t) ‑> bool has(self, x) -> bool

    x: twinline_t const *const &


  • inject(self, s: twinline_t const **, len: size_t) ‑> void inject(self, s, len)

    s: twinline_t const ** len: size_t


  • insert(self, it: qvector< twinline_t const * >::iterator, x: twinline_t) ‑> 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 &


  • pop_back(self) ‑> void pop_back(self)


  • push_back(self, *args) ‑> twinline_t const *& push_back(self, x)

    x: twinline_t const *const &

    push_back(self) -> twinline_t const *&


  • qclear(self) ‑> void qclear(self)


  • reserve(self, cnt: size_t) ‑> void reserve(self, cnt)

    cnt: size_t


  • resize(self, *args) ‑> void resize(self, _newsize, x)

    _newsize: size_t x: twinline_t const *const &

    resize(self, _newsize)

    _newsize: size_t


  • size(self) ‑> size_t size(self) -> size_t


  • swap(self, r: section_lines_refs_t) ‑> void swap(self, r)

    r: qvector< twinline_t const * > &


  • truncate(self) ‑> void truncate(self)


sections_lines_refs_t(*args)

: Proxy of C++ qvector< section_lines_refs_t > class.

__init__(self) -> sections_lines_refs_t
__init__(self, x) -> sections_lines_refs_t

 x: qvector< section_lines_refs_t > const &

Methods

  • add_unique(self, x: section_lines_refs_t) ‑> bool add_unique(self, x) -> bool

    x: section_lines_refs_t const &


  • at(self, _idx: size_t) ‑> section_lines_refs_t const & at(self, _idx) -> section_lines_refs_t

    _idx: size_t


  • back(self)


  • 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


  • capacity(self) ‑> size_t capacity(self) -> size_t


  • clear(self) ‑> void clear(self)


  • empty(self) ‑> bool empty(self) -> bool


  • 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


  • 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


  • extract(self) ‑> section_lines_refs_t * extract(self) -> section_lines_refs_t


  • 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 &


  • front(self)


  • grow(self, *args) ‑> void grow(self, x=section_lines_refs_t())

    x: section_lines_refs_t const &


  • has(self, x: section_lines_refs_t) ‑> bool has(self, x) -> bool

    x: section_lines_refs_t const &


  • inject(self, s: section_lines_refs_t, len: size_t) ‑> void inject(self, s, len)

    s: section_lines_refs_t * len: size_t


  • insert(self, it: qvector< section_lines_refs_t >::iterator, x: section_lines_refs_t) ‑> 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 &


  • pop_back(self) ‑> void pop_back(self)


  • push_back(self, *args) ‑> section_lines_refs_t & push_back(self, x)

    x: section_lines_refs_t const &

    push_back(self) -> section_lines_refs_t


  • qclear(self) ‑> void qclear(self)


  • reserve(self, cnt: size_t) ‑> void reserve(self, cnt)

    cnt: size_t


  • resize(self, *args) ‑> void resize(self, _newsize, x)

    _newsize: size_t x: section_lines_refs_t const &

    resize(self, _newsize)

    _newsize: size_t


  • size(self) ‑> size_t size(self) -> size_t


  • swap(self, r: sections_lines_refs_t) ‑> void swap(self, r)

    r: qvector< section_lines_refs_t > &


  • truncate(self) ‑> void truncate(self)


simplecustviewer_t()

: The base class for implementing simple custom viewers

Class variables

  • UI_Hooks_Trampoline Proxy of C++ UI_Hooks class.


Methods

  • AddLine(self, line, fgcolor=None, bgcolor=None) Adds a colored line to the view return: Boolean


  • ClearLines(self) Clears all the lines


  • Close(self) Destroys the view. One has to call Create() afterwards. Show() can be called and it will call Create() internally. return: Boolean


  • Count(self) Returns the number of lines in the view


  • 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


  • DelLine(self, lineno) Deletes an existing line return: Boolean


  • EditLine(self, lineno, line, fgcolor=None, bgcolor=None) Edits an existing line. return: Boolean


  • 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


  • 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


  • GetLine(self, lineno) Returns a line lineno: The line number return: Returns a tuple (colored_line, fgcolor, bgcolor) or None


  • GetLineNo(self, mouse=0) Calls GetPos() and returns the current line number or -1 on failure


  • GetPos(self, mouse=0) Returns the current cursor or mouse position. mouse: return mouse position return: Returns a tuple (lineno, x, y)


  • GetSelection(self) Returns the selected range or None return: - tuple(x1, y1, x2, y2) - None if no selection


  • GetWidget(self) Return the TWidget underlying this view.

    return: The TWidget underlying this view, or None.


  • InsertLine(self, lineno, line, fgcolor=None, bgcolor=None) Inserts a line in the given position return: Boolean


  • IsFocused(self) Returns True if the current view is the focused view


  • Jump(self, lineno, x=0, y=0)


  • 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


  • 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


  • Refresh(self)


  • RefreshCurrent(self) Refreshes the current line only


  • Show(self) Shows an already created view. It the view was closed, then it will call Create() for you return: Boolean


simpleline_place_t(*args, **kwargs)

: Proxy of C++ simpleline_place_t class.

Ancestors (in MRO)

* ida_kernwin.place_t

Instance variables

  • n: uint32 n


simpleline_t(*args)

: Proxy of C++ simpleline_t class.

__init__(self) -> simpleline_t
__init__(self, c, str) -> simpleline_t

 c: color_t
 str: char const *

__init__(self, str) -> simpleline_t

 str: char const *

Instance variables

  • bgcolor: bgcolor_t bgcolor


  • color: color_t color


  • line: qstring line


strarray_t()

: Proxy of C++ strarray_t class.

__init__(self) -> strarray_t

Instance variables

  • code: int code


  • text: char const * text


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

  • get_register(self) ‑> char const * get_register(self) -> char const *


  • get_widget(self) ‑> TWidget const * get_widget(self) -> TWidget const *


  • is_register(self) ‑> bool is_register(self) -> bool


  • is_widget(self) ‑> bool is_widget(self) -> bool


sync_source_vec_t(*args)

: Proxy of C++ qvector< sync_source_t > class.

__init__(self) -> sync_source_vec_t
__init__(self, x) -> sync_source_vec_t

 x: qvector< sync_source_t > const &

Descendants

* ida_kernwin.synced_group_t

Methods

  • add_unique(self, x: sync_source_t) ‑> bool add_unique(self, x) -> bool

    x: sync_source_t const &


  • at(self, _idx: size_t) ‑> sync_source_t const & at(self, _idx) -> sync_source_t

    _idx: size_t


  • back(self)


  • begin(self, *args) ‑> qvector< sync_source_t >::const_iterator begin(self) -> sync_source_t


  • capacity(self) ‑> size_t capacity(self) -> size_t


  • clear(self) ‑> void clear(self)


  • empty(self) ‑> bool empty(self) -> bool


  • end(self, *args) ‑> qvector< sync_source_t >::const_iterator end(self) -> sync_source_t


  • 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


  • extract(self) ‑> sync_source_t * extract(self) -> sync_source_t


  • find(self, *args) ‑> qvector< sync_source_t >::const_iterator find(self, x) -> sync_source_t

    x: sync_source_t const &


  • front(self)


  • has(self, x: sync_source_t) ‑> bool has(self, x) -> bool

    x: sync_source_t const &


  • inject(self, s: sync_source_t, len: size_t) ‑> void inject(self, s, len)

    s: sync_source_t * len: size_t


  • insert(self, it: sync_source_t, x: sync_source_t) ‑> qvector< sync_source_t >::iterator insert(self, it, x) -> sync_source_t

    it: qvector< sync_source_t >::iterator x: sync_source_t const &


  • pop_back(self) ‑> void pop_back(self)


  • push_back(self, x: sync_source_t) ‑> void push_back(self, x)

    x: sync_source_t const &


  • qclear(self) ‑> void qclear(self)


  • reserve(self, cnt: size_t) ‑> void reserve(self, cnt)

    cnt: size_t


  • size(self) ‑> size_t size(self) -> size_t


  • swap(self, r: sync_source_vec_t) ‑> void swap(self, r)

    r: qvector< sync_source_t > &


  • truncate(self) ‑> void truncate(self)


synced_group_t()

: Proxy of C++ synced_group_t class.

__init__(self) -> synced_group_t

Ancestors (in MRO)

* ida_kernwin.sync_source_vec_t

Methods

  • has(self, ss: sync_source_t) ‑> bool has(self, ss) -> bool

    ss: sync_source_t const &


  • has_register(self, r: char const *) ‑> bool has_register(self, r) -> bool

    r: char const *


  • has_widget(self, v: TWidget const *) ‑> bool has_widget(self, v) -> bool

    v: TWidget const *


tagged_line_section_t()

: Proxy of C++ tagged_line_section_t class.

__init__(self) -> tagged_line_section_t

Ancestors (in MRO)

* ida_kernwin.line_section_t

Instance variables

  • tag: color_t tag


Methods

  • substr(self, _in: qstring const &, end: tagged_line_section_t = None) ‑> bool substr(self, _in, end=None) -> bool

    in: qstring const & end: tagged_line_section_t const *


  • valid_in(self, _in: qstring const &) ‑> bool valid_in(self, _in) -> bool

    in: qstring const &


tagged_line_sections_t()

: Proxy of C++ tagged_line_sections_t class.

__init__(self) -> tagged_line_sections_t

Methods

  • nearest_after(self, range: tagged_line_section_t, start: cpidx_t, tag: color_t = 0) ‑> tagged_line_section_t const * nearest_after(self, range, start, tag=0) -> tagged_line_section_t

    range: tagged_line_section_t const & start: cpidx_t tag: color_t


  • nearest_at(self, x: cpidx_t, tag: color_t = 0) ‑> tagged_line_section_t const * nearest_at(self, x, tag=0) -> tagged_line_section_t

    x: cpidx_t tag: color_t


  • nearest_before(self, range: tagged_line_section_t, start: cpidx_t, tag: color_t = 0) ‑> tagged_line_section_t const * nearest_before(self, range, start, tag=0) -> tagged_line_section_t

    range: tagged_line_section_t const & start: cpidx_t tag: color_t


  • sections_at(self, out: tagged_line_sections_t, x: cpidx_t, tag: color_t = 0) ‑> void sections_at(self, out, x, tag=0)

    out: tagged_line_sections_t * x: cpidx_t tag: color_t


text_t(*args)

: Proxy of C++ qvector< twinline_t > class.

__init__(self) -> text_t
__init__(self, x) -> text_t

 x: qvector< twinline_t > const &

Methods

  • at(self, _idx: size_t) ‑> twinline_t const & at(self, _idx) -> twinline_t

    _idx: size_t


  • back(self)


  • begin(self, *args) ‑> qvector< twinline_t >::const_iterator begin(self) -> twinline_t


  • capacity(self) ‑> size_t capacity(self) -> size_t


  • clear(self) ‑> void clear(self)


  • empty(self) ‑> bool empty(self) -> bool


  • end(self, *args) ‑> qvector< twinline_t >::const_iterator end(self) -> twinline_t


  • 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


  • extract(self) ‑> twinline_t * extract(self) -> twinline_t


  • front(self)


  • grow(self, *args) ‑> void grow(self, x=twinline_t())

    x: twinline_t const &


  • inject(self, s: twinline_t, len: size_t) ‑> void inject(self, s, len)

    s: twinline_t * len: size_t


  • insert(self, it: twinline_t, x: twinline_t) ‑> qvector< twinline_t >::iterator insert(self, it, x) -> twinline_t

    it: qvector< twinline_t >::iterator x: twinline_t const &


  • pop_back(self) ‑> void pop_back(self)


  • push_back(self, *args) ‑> twinline_t & push_back(self, x)

    x: twinline_t const &

    push_back(self) -> twinline_t


  • qclear(self) ‑> void qclear(self)


  • reserve(self, cnt: size_t) ‑> void reserve(self, cnt)

    cnt: size_t


  • resize(self, *args) ‑> void resize(self, _newsize, x)

    _newsize: size_t x: twinline_t const &

    resize(self, _newsize)

    _newsize: size_t


  • size(self) ‑> size_t size(self) -> size_t


  • swap(self, r: text_t) ‑> void swap(self, r)

    r: qvector< twinline_t > &


  • truncate(self) ‑> void truncate(self)


textctrl_info_t(text='', flags=0, tabsize=0)

: Class representing textctrl_info_t

Ancestors (in MRO)

* ida_idaapi.py_clinked_object_t
* ida_idaapi.pyidc_opaque_object_t

Descendants

* ida_kernwin.Form.MultiLineTextControl

Class variables

  • TXTF_ACCEPTTABS


  • TXTF_AUTOINDENT


  • TXTF_FIXEDFONT


  • TXTF_MODIFIED


  • TXTF_READONLY


  • TXTF_SELECTED


Instance variables

  • flags Returns the flags value


  • tabsize Returns the tabsize value


  • text Sets the text value


  • value Sets the text value


Methods

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


tiplace_t(*args, **kwargs)

: Proxy of C++ tiplace_t class.

Ancestors (in MRO)

* ida_kernwin.place_t

Instance variables

  • cursor: tif_cursor_t cursor


  • ordinal: uint32 ordinal


Methods

  • calc_udm_offset(self, ud: void const *, p_udmidx: ssize_t * = None, p_bitoff: int * = None) ‑> uint64 calc_udm_offset(self, ud, p_udmidx=None, p_bitoff=None) -> uint64 for structs: calculate the offset that corresponds to the tiplace.

    ud: (C++: const void *) pointer to user-defined context data. Is supplied by linearray_t p_udmidx: (C++: ssize_t *) place to return the index of the current udt member, if any. if there is no member at the current offset, return -1 p_bitoff: (C++: int *) place to return the bit offset of the item from the beginning of the bit bucket if there no bitfields, return -1 return: the current offset or uint64(-1)


  • fill_type_ref(self, out: til_type_ref_t *, ud: void const *) ‑> bool fill_type_ref(self, out, ud) -> bool fill the type information for use in actions

    out: (C++: til_type_ref_t *) pointer to storage ud: (C++: const void *) pointer to user-defined context data. Is supplied by linearray_t return: success


  • get_kind(self, ud: void const *) ‑> type_t get_kind(self, ud) -> type_t get the kind of type this place represents

    ud: (C++: const void *) pointer to user-defined context data. Is supplied by linearray_t return: one of BTF_TYPEDEF, BTF_STRUCT, BTF_UNION, BTF_ENUM or BT_UNK


  • is_footer(self) ‑> bool is_footer(self) -> bool


  • is_header(self) ‑> bool is_header(self) -> bool


  • is_index(self) ‑> bool is_index(self) -> bool


  • reset(self) ‑> void reset(self)


  • set_footer(self) ‑> void set_footer(self)


  • set_header(self) ‑> void set_header(self)


  • set_index_by_offset(self, ud: void *, offset: uint64) ‑> void set_index_by_offset(self, ud, offset) for structs: calculate the index that corresponds to the offset and set it.

    ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t offset: (C++: uint64) offset of udt member


  • valid_ord(self) ‑> bool valid_ord(self) -> bool


twinline_t(*args)

: Proxy of C++ twinline_t class.

__init__(self) -> twinline_t
__init__(self, t, pc, bc) -> twinline_t

 t: place_t *
 pc: color_t
 bc: bgcolor_t

Instance variables

  • at: place_t * at


  • bg_color: bgcolor_t bg_color


  • is_default: bool is_default


  • line: qstring line


  • prefix_color: color_t prefix_color


twinpos_t(*args)

: Proxy of C++ twinpos_t class.

__init__(self) -> twinpos_t
__init__(self, t) -> twinpos_t

 t: place_t *

__init__(self, t, x0) -> twinpos_t

 t: place_t *
 x0: int

Instance variables

  • at: place_t * at


  • x: int x


Methods

  • place(self, view)


  • place_as_idaplace_t(self)


  • place_as_simpleline_place_t(self)


  • place_as_tiplace_t(self)


ui_requests_t()

: Proxy of C++ ui_requests_t class.

__init__(self) -> ui_requests_t

view_mouse_event_location_t()

: Proxy of C++ view_mouse_event_location_t class.

__init__(self) -> view_mouse_event_location_t

Instance variables

  • ea: ea_t ea


  • item: selection_item_t const * item


view_mouse_event_t()

: Proxy of C++ view_mouse_event_t class.

__init__(self) -> view_mouse_event_t

Instance variables

  • button: vme_button_t button


  • location: view_mouse_event_t::location_t location


  • renderer_pos: renderer_pos_info_t renderer_pos


  • rtype: tcc_renderer_type_t rtype


  • state: view_event_state_t state


  • x: uint32 x


  • y: uint32 y


Last updated